Světelný senzor TEMT6000 je přídavný vstupní modul pro Arduino. Tento modul obsahuje senzor osvětlení, který pracuje podobně jako NPN tranzistor. Při nulovém osvětlení je přechod zavřený a na výstupu naměříme napětí 0 Voltů. Se vzrůstajícím množstvím světla dopadajícího na senzor se pak začne zvedat i napětí na výstupu senzoru, přičemž maximum odpovídá napětí připojenému na napájení senzoru.
Senzor je nejvíce citlivý na záření, které má vlnovou délku 570 nm a poloměr citlivosti senzoru je +- 60 stupňů. Pro napájení senzoru můžeme využít napájecí napětí 3,3 nebo 5 Voltů.

Světelný senzor TEMT6000

Pro úspěšné propojení senzoru TEMT6000 a Arduino desky je nutné zapojit celkem 3 vodiče. Propojíme S s pinem A0, G se zemí Arduina a V s +5V Arduina. Pro analogový výstup S je možné využít také jiný volný analogový pin, ale je nutné tuto volbu provést také na začátku programu.

Schéma zapojení světelného senzoru TEMT6000

Ukázkový kód obsahuje na svém začátku nastavení čísla propojovacího pinu a vytvoření proměnných, do kterých se ukládají výsledky měření. V podprogramu setup provedeme inicializaci komunikace po sériové lince a přejdeme do smyčky loop.
V prvním kroku v nekonečné smyčce loop vždy načteme hodnoty z analogového pinu do proměnné. Pro získání procentuálního vyjádření naměřených dat pak v dalším příkazu namapujeme rozsah analogových dat 0-1023 na kratší rozsah 0-100 a uložíme jeho hodnotu do druhé proměnné. V následujícím kroku vypíšeme obě informace po sériové lince a poté ještě pro ukázku budeme ověřovat hodnotu procentuálního množství světla v okolí. Pomocí podmínky if kontrolujeme, jestli je v okolí více než 50 % z maximálního rozsahu. Pokud je podmínka splněna, vypíšeme informaci o dostatku světla po sériové lince. Pokud je ale hodnota menší, vypíšeme informaci o jeho nedostatku. Na konci programu se nachází už jen pauza před novým během smyčky.

// Světelný senzor TEMT6000

// nastavení čísla propojovacího pinu
#define analogPin A0
// vytvoření proměnných pro výsledky měření
int analogHodnota;
int prepocet;

void setup() {
  // zahájení komunikace po sériové lince
  // rychlostí 9600 baud
  Serial.begin(9600);
}

void loop() {
  // načtení hodnoty z analogového pinu
  analogHodnota = analogRead(analogPin);
  // přepočet analogové hodnoty z celého rozsahu
  //  0-1023 na procentuální rozsah 0-100
  prepocet = map(analogHodnota, 0, 1023, 0, 100);
  // výpis načtených dat po sériové lince
  Serial.print("Nactena hodnota: ");
  Serial.print(analogHodnota);
  Serial.print(", v procentech: ");
  Serial.print(prepocet);
  if (prepocet > 50) {
    Serial.println(" | V okoli je dostatek svetla.");
  }
  else {
    Serial.println(" | V okoli je nedostatek svetla.");
  }
  // pauza před novým během loop smyčky
  delay(500);
}

Po nahrání ukázkového kódu do Arduino desky s připojeným senzorem TEMT6000 dostaneme například tento výsledek v Sériovém monitoru:

Nactena hodnota: 0, v procentech: 0 | V okoli je nedostatek svetla.
Nactena hodnota: 325, v procentech: 31 | V okoli je nedostatek svetla.
Nactena hodnota: 361, v procentech: 35 | V okoli je nedostatek svetla.
Nactena hodnota: 578, v procentech: 56 | V okoli je dostatek svetla.
Nactena hodnota: 990, v procentech: 96 | V okoli je dostatek svetla.
Nactena hodnota: 1003, v procentech: 98 | V okoli je dostatek svetla.
Nactena hodnota: 998, v procentech: 97 | V okoli je dostatek svetla.
Nactena hodnota: 81, v procentech: 7 | V okoli je nedostatek svetla.

Světelný senzor TEMT6000 je jednoduchý modul, kterým nám přes jeden analogový pin dokáže pomoci s detekcí světla v okolí. Hodí se tedy do projektů, kde potřebujeme rozlišovat mezi různými hladinami osvětlení, ale nevyžadujeme přesnou hodnotu v luxech. Například tedy může sloužit pro spínání světla v místnostech, když se venku dostatečně zatmí, nebo jako detektor černé čáry pro malé roboty.
Výhodou tohoto senzoru je rozhodně jeho nízká cena a rozměry. Nevýhodou pak pro někoho může být omezení citlivosti pro zmíněnou vlnovou délku nebo nejasný vztah mezi výstupním napětím a osvětlením v luxech. Avšak po pečlivé kalibraci by bylo i to možné.

 

Seznam použitých komponent:

https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/1737-svetelny-senzor-temt6000-modul-pro-arduino-1502184137.html

FB tw

Další podobné články