Helios Colour Sensor TCS3414

Uit Helios Wiki
Ga naar: navigatie, zoeken

Met deze library kan de op de Helios aanwezige lichtsensor op twee manieren worden uitgelezen. Een gewone read functie waarbij de lichtsterkte in lux en de kleurtemperatuur in Kelvin worden terug gegegeven, de instellingen voor de integratie tijd, gain en prescaler worden automatisch ingesteld. En een readlow functie waarbij zelf de instelling van de sensor moet worden ingesteld en naast de lichtsterkte en kleurtemperatuur ook de ruwe meetwaarden van de rood, groen, blauw en clear worden terug gegeven. Voor meer informatie over de instellingen van de sensor zie de datasheet. Voor het gebruik van deze functie dienen de header files Helios_Colour_Sensor_TCS3414.h en Wire.h worden toegevoegd aan de sketch. Bovendien moet Wire.begin() worden aangeroepen in de setup. Omdat voor de kalibratie waardes de externe EEPROM wordt gebruikt moet het header file Helios_EEPROM_24AA014.h ook worden toegevoegd aan de sketch. Deze library beschikt over de volgende functies:

  • Read
  • ReadLow

Read

Deze functie voert een lichtmeting uit en geeft de lichtsterkte in lux en de kleurtemperatuur in Kelvin terug, de instellingen van de sensor worden automatisch ingesteld. De tijd van de meting kan variƫren tussen 12 ms seconden en 1500 ms, afhankelijk van de hoeveelheid licht en de verandering van licht dat op de sensor valt.

Syntax

void Read(unsigned int *lux,unsigned int *cct)

Parameters

lux: pointer naar het adres waar de gemeten lichsterkte in lux is opgeslagen.

cct: pointer naar het adres waar de gemeten kleurtemperatuur in Kelvin is opgeslagen.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_EEPROM_24AA014.h>
#include <Helios_Colour_Sensor_TCS3414.h>
Helios_Colour_Sensor_TCS3414 cs;

char Data[30];

void setup()
{
   Serial.begin(9600); //start serial monitor with 9600 baud
   Wire.begin(); //start i2c
}

void loop()
{
   unsigned int lux, cct;
   cs.Read(&lux,&cct); //read lux een colour temperature
   sprintf(Data,"%d lux %d Kelvin",lux,cct); 
   Serial.println(Data); //print new line
}

ReadLow

Deze functie voert een lichtmeting uit en geeft naast de lichtsterkte en de kleurtemperatuur ook de ruwe meetwaarden van rood, groen blauw en clear terug. Verder moeten ook de instellingen voor de sensor zelf worden ingesteld. Een meting duurt 500 ms.

Syntax

void ReadLow(int integratietijd,int gain,int prescaler,&r,&g,&b,&lux,&cct)

Parameters

integratietijd: deze variabele is de instelling van de integratietijd van de sensor. Er kan gekozen worden tussen 12 ms, 100 ms en 400 ms.

gain: deze variabele is de instelling van de gain waarde van de sensor. Er kan gekozen worden tussen 1, 4, 16 en 64.

prescaler: deze variabele is de instelling van de prescaler waarde van de sensor. Er kan gekozen worden tussen 1, 2, 4, 8, 16, 32 en 64.

r: pointer naar het adres waar de ruwe waarde van rood is opgeslagen.

g: pointer naar het adres waar de ruwe waarde van groen is opgeslagen.

b: pointer naar het adres waar de ruwe waarde van blauw is opgeslagen.

clear: pointer naar het adres waar de ruwe waarde van clear is opgeslagen.

lux: pointer naar het adres waar de gemeten lichtsterke in lux is opgeslagen.

cct: pointer naar het adres waar de gemeten kleurtemperatuur in Kelvin is opgeslagen.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_EEPROM_24AA014.h>
#include <Helios_Colour_Sensor_TCS3414.h>
Helios_Colour_Sensor_TCS3414 cs;

char Data[50];

void setup()
{
   Serial.begin(9600); //start serial monitor with 9600 baud
   Wire.begin(); //start i2c
}

void loop()
{
   unsigned int r,g,b,c,lux, cct;
   cs.ReadLow(400,1,1,&r,&g,&b,&c,&lux,&cct); //read lux een colour temperature
   sprintf(Data,"%d;%d;%d;%d %d lux %d Kelvin",r,g,b,c,lux,cct); 
   Serial.println(Data); //print new line
}
Persoonlijke instellingen
Naamruimten

Varianten
Handelingen
Navigatie
Hulpmiddelen

"Arduino" is een trademark van het Arduino team.
"Helios" is a design ©2013 by KITT Engineering