Fotorezistor je proměnný rezistor, jehož odpor je závislý na míře jeho osvětlení. Odpor fotorezistoru se snižuje s rostoucí intenzitou dopadajícího světla, takže jej můžeme využít pro měření intenzity světla nebo osvětlení. Stejně tak fotorezistor můžeme využít při stavbě světlocitlivého detektoru, který se aktivuje světlem či tmou.
Jak bylo uvedeno v úvodu, odpor fotorezistoru se mění na základě intenzity dopadajícího světla. Když se intenzita tohoto světla zvýší, odpor se sníží a naopak. V tomto experimentu zapojíme fotorezistor společně s pevným rezistorem tak, abychom vytvořili tzv. dělič napětí. Podobné zapojení jsme kupříkladu viděli při použití potenciometru nebo ještě uvidíme u detektoru plamene. Díky změně odporu fotorezistoru se bude měnit napětí na analogovém pinu A0
. Toto napětí budeme načítat vestaveným AD převodníkem modulu Arduino. Pro zobrazení změny velikosti vstupního napětí na fotorezistoru, které odpovídá míře osvětlení, použijeme výstup na osmici LED. Čím větší bude intenzita světla, tím více LED se rozsvítí. Při dosažení maximální intenzity světla, se rozsvítí všechny LED. V případě nízké úrovně světla se nerozsvítí nic.
Jelikož vstupní interval načtených hodnotu potřebujeme rozdělit do osmi stupňů, které budou rozsvěcet patřičné LED, můžeme buď použít systém několika podmínek, ale zde lépe využijeme příkazový blok mapování zadané hodnoty na předem stanovený interval (více v popisu kódu). Využití tohoto příkazového bloku se velmi často využívá nejen pro převod vstupní hodnoty analogových vstupů (interval 0–1023) na „užitečný“ rozsah.
Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu. Fotorezistor zapojíme k napájecímu napětí +5 V
a k pinu analogovému pinu A0
, který přes rezistor 10 kΩ připojíme k zemi GND
. LED zapojíme katodou (kratší vývod) k zemi GND a anodou (delší vývod) přes rezistor 220 Ω k digitálním pinům 2
–9
modulu Arduino.
Blokové schéma
Elektronické schéma
Krok 2: V prostředí mBlock sestavíme následující program.
Program lze stáhnout z:
http://
V první části jsou jednotlivé piny s připojenými LED nastaveny na nízkou hodnotu (LOW), čímž jsou nejen všechny LED zhasnuty, ale zároveň deklarovány příslušné digitální piny do režimu digitálních výstupů. Po tomto kroku je již možné se na tyto výstupy odkazovat z hodnot proměnných (vysvětleno v předešlé lekci: LED tekoucí potok).
V hlavní nekonečné smyčce „opakuj stále“ je nedříve načten analogový vstup A0
do proměnné sensorValue
. Proměnná sensorValue
je nadále „přemapována“ na osmistupňovou hodnotu (0–7), která je potřeba rozsvícení daných LED. Tato hodnota je uložena do proměnné ledLevel
. Všimněme si, že hodnoty sensorValue
nejsou mapovány od nuly (viz fialový blok „mapovat“), ale až od hodnoty 300. Důvod nalezneme v elektronickém schématu. Zatímco v jedné z předchozích lekcí potenciometr reguloval vstupní napětí na vstupu A0
v rozmezí 0–5 V, zde je minimální hodnota dána maximálním odporem fotorezistoru a zároveň pevným rezistorem 10 kΩ zapojeným proti zemi GND.
Proměnná led
je využita pro postupné rozsvěcení LED. V cyklu, který se opakuje 8×, je postupně zvyšována proměnná led
od 0 do 7. Podmínka testuje, zda je proměnná led
(adresa aktuální LED) vyšší/nižší než hodnota proměnná ledLevel
(přemapovaná hodnota vstupu). Pokud je hodnota proměnné led
nižší, dojde k rozsvícení LED nastavením daného pinu na vysokou hodnotu HIGH, jinak je LED zhasnuta nízkou úrovní LOW. Tím dojde k efektu rozsvěcení LED stupnice podle osvícení fotorezistoru.
sensorValue
tím, že bychom příkazový blok načtení analogové hodnoty pinu A0
rovnou vložili do bloku „mapování“ – viz následující ukázka:led
by tak v podmínce také musela odpovídat pinům a nikoliv pořadí LED. Ale to není problém – před cyklem osminásobného opakování prostě proměnnou led
nastavíme na hodnotu 2 (číslo pinu nejnižší LED). Tím pádem si ušetříme přičítání dvojky v příkazech ovládání výstupů s LED.Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem .
Krok 4: Postupně budeme měnit intenzitu osvícení fotorezistoru a měli bychom sledovat, jak se LED postupně rozsvěcí. Čím více posvítíme na fotorezistor, tím více větší počet LED se rozsvítí. Jakmile fotorezistor zatemníme, všechny LED zhasnou.