Stap 4: De definitieve code instellen.
De code die ik gebruik is gebaseerd op de voorbeeldcode.
Ten eerste de definities en algemene variabelen. De regel " TSL2561 tsl(TSL2561_ADDR_LOW);" betekent dat mijn ADDR pin op de sensor in grond is.
<p>#include <wire.h><br>#include "TSL2561.h" #include "rgb_lcd.h"</wire.h></p><p>TSL2561 tsl(TSL2561_ADDR_LOW); </p><p>rgb_lcd lcd;</p><p>const int colorR = 255; const int colorG = 0; const int colorB = 0;</p>
Voer de setup.
<p>void setup(void) {<br> Serial.begin(9600); if (tsl.begin()) { Serial.println("Found sensor"); } else { Serial.println("No sensor?"); while (1); } </p><p> tsl.setGain(TSL2561_GAIN_0X); // set no gain (for bright situtations) //tsl.setGain(TSL2561_GAIN_16X); // set 16x gain (for dim situations) tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS);</p><p> lcd.begin(16, 2); lcd.home(); lcd.clear(); lcd.setRGB(colorR, colorG, colorB); lcd.setRGB(255,255,255); }</p>
En tot slot het hoofdprogramma in lus. De drie lijnen net onder de void lus definiëren wat voor soort licht dat u wilt meten. Zichtbare maatregelen al het licht instellen u kunt zien. Heks is een klein gebied van het elektromagnetische spectrum, dat is ruwweg tussen 380nm-700nm in golflengte in het spectrum.
Dan is er fullspectrum heks betekent dat u, zichtbaar licht en infrarood meten kunt licht op hetzelfde moment. In het spectrum betekent dit in golflengte tussen 380nm - 1mm (1000nm)
En de instelling van de infrarood ziet infrarood licht in golflengte tussen 700nm - 1mm.
<p>void loop(void) {<br> //uint16_t x = tsl.getLuminosity(TSL2561_VISIBLE); uint16_t x = tsl.getLuminosity(TSL2561_FULLSPECTRUM); //uint16_t x = tsl.getLuminosity(TSL2561_INFRARED); Serial.println(x, DEC);</p><p> uint32_t lum = tsl.getFullLuminosity(); uint16_t ir, full; ir = lum >> 16; full = lum & 0xFFFF;</p><p> lcd.setCursor(0,0); lcd.print("Vis:"); lcd.setCursor(4,0); lcd.print(full-ir); lcd.setCursor(9,0); lcd.print("IR:"); lcd.setCursor(12,0); lcd.print(ir); lcd.setCursor(0,1); lcd.print("Lux:"); lcd.setCursor(4,1); lcd.print(tsl.calculateLux(full, ir)); delay(500); lcd.clear(); }</p>