Ak ste niekedy premýšľali, ako efektívne merať úroveň osvetlenia v prostredí s Arduinom, ste na správnom mieste. V tomto článku si krok za krokom vysvetlíme, ako to urobiť pomocou fotorezistora LDR, známeho aj ako fotorezistor. Tieto malé technologické zázraky sú elektronické súčiastky schopné meniť svoj odpor v závislosti od množstva svetla, ktoré dostávajú, čo otvára nekonečné možnosti pre elektronické a automatizačné projekty.
Aplikácií svetelného senzora s Arduino je mnoho: od automatických osvetľovacích systémov až po roboty, ktoré sa orientujú na základe svetla. Najlepšie zo všetkého je, že je to cenovo dostupný a ľahko použiteľný komponent. Tu vám poskytneme všetky potrebné informácie, aby ste si mohli zostaviť svoj vlastný systém merania svetla s Arduinom a využiť jeho plný potenciál.
Čo je LDR a ako funguje?
Una LDR (svetlo závislý odpor) Ide o odpor, ktorého veľkosť sa mení v závislosti od množstva svetla, ktoré naň dopadá. V tmavých podmienkach je odpor veľmi vysoký a dosahuje hodnoty až 1 MOhm. Naopak, keď LDR dostane dostatok svetla, odpor výrazne klesá a pri intenzívnom svetle dosahuje hodnoty medzi 50 až 100 Ohmami.
Jeho činnosť je založená na princípe vodivosti polovodičových materiálov. Po prijatí svetla fotóny energizujú elektróny v materiáli, čím uľahčujú tok prúdu a tým znižujú odpor. Tento typ snímača je veľmi užitočný pre aplikácie, kde sa vyžaduje relatívne meranie svetla v prostredí.
Vlastnosti LDR
Táto zložka je veľmi populárna vďaka nízkej cene a jednoduchosti použitia. Typické hodnoty odporu sa pohybujú od 1 MOhm v úplnej tme až do 50-100 Ohm pri jasnom svetle. Stojí však za zmienku, že nejde o najpresnejšie senzory, ak chcete presne merať osvetlenie (svetlo v luxoch), pretože môžu byť ovplyvnené faktormi, ako je teplota.
Zmeny odporu sú pomerne pomalé, čo trvá 20 až 100 milisekúnd v závislosti od modelu. To znamená, že nie je vhodný na detekciu rýchlych zmien svetla, ako sú tie, ktoré vznikajú pri svietidlách napájaných striedavým prúdom, ale ponúka vynikajúcu stabilitu v konštantnejších svetelných podmienkach.
zatiaľ čo LDR sú vhodnejšie na meranie svetelných trendov že na poskytovanie presných údajov, ich nízka cena a jednoduchá integrácia s doskami Arduino z nich robí ideálny senzor pre DIY projekty.
Schéma zapojenia a obvodu
Aby Arduino mohlo merať zmenu odporu LDR, je potrebné namontovať senzor na to, čo je známe ako delič napätia. Jedná sa o veľmi jednoduchý obvod zložený z LDR a pevného odporu zapojených do série. LDR je umiestnený medzi vstupným napätím (napr. 5V na doske Arduino Uno) a analógový vstupný kolík a pevný odpor je zapojený medzi kolík a zem (GND).
Hodnota pevného odporu je zvyčajne 10 kOhmov, aj keď sa môže líšiť v závislosti od citlivosti, ktorú chcete pri meraní dosiahnuť.
Príklady zostavy a kódu
Ak chcete vytvoriť základný systém s Arduino a LDR, prvá vec, ktorú musíte urobiť, je pripojiť nasledujúce prvky:
- Jeden koniec LDR k napájaniu 5V.
- Druhý koniec LDR na analógový vstup (napríklad A0) a zároveň na pevný odpor, ktorý bude pripojený k zemi.
S týmto nastavením môžete začať čítať hodnoty, ktoré LDR poskytuje cez analógový vstup. Nižšie uvedený kód je základným príkladom na čítanie týchto hodnôt:
const int pinLDR = A0;
void setup() {
Serial.begin(9600); // Iniciar monitor serie}
void loop() {
int valorLDR = analogRead(pinLDR); // Leer valor de LDR
Serial.println(valorLDR); // Imprimir valor en monitor
delay(500);
}
Tento kód vytlačí hodnoty medzi 0 (t. j. keď nie je svetlo) a 1023 (maximálne prijaté svetlo). Tieto hodnoty sú úmerné svetlu vnímanému LDR.
Správanie sa odporu ako funkcia svetla
Ako už bolo spomenuté, odpor LDR klesá, keď dostáva viac svetla. Na získanie a presné meranie množstva svetla, potrebujete poznať hodnoty odporu vášho LDR v rôznych svetelných podmienkach.
Napríklad v sérii GL55 sa hodnoty pohybujú od 5 kΩ do 200 kΩ v prítomnosti svetla a od 500 kΩ do 10 MΩ v tmavých podmienkach. Tieto hodnoty sa môžu líšiť od jedného modelu k druhému, preto je vždy vhodné nahliadnuť do údajového listu výrobcu snímača.
Zaujímavou zvláštnosťou LDR je to Jeho citlivosť je najväčšia v zelenej časti spektra., približne pri vlnových dĺžkach 540 nm. To znamená, že LDR lepšie reagujú na zelené svetlo ako iné časti viditeľného spektra.
Praktické aplikácie
Možné aplikácie LDR pripojených k Arduinu sú takmer nekonečné. Medzi najpraktickejšie patria automatické osvetľovacie systémy, kde okruh dokáže aktivovať alebo deaktivovať svetlá v závislosti od zistených úrovní osvetlenia. Používajú sa aj na roboty sledujúce svetlo a systémy domácej automatizácie.
Môžete napríklad vytvoriť systém, v ktorom sa pri znižovaní úrovne osvetlenia rozsvieti LED dióda, ktorá kompenzuje nedostatok svetla. Tu je jednoduchý príklad kódu:
int LDRPin = A0; // Pin para la LDR
int LEDPin = 13; // Pin para el LED
int threshold = 500; // Umbral para encender el LED
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(LDRPin, INPUT);}
void loop() {
int valorLuz = analogRead(LDRPin);
if (valorLuz < threshold) {
digitalWrite(LEDPin, HIGH); // Enciende el LED
} else {
digitalWrite(LEDPin, LOW); // Apaga el LED
}
delay(100);}
Tento malý program načíta hodnotu LDR a ak je úroveň osvetlenia nižšia ako nastavená prahová hodnota, rozsvieti LED. V opačnom prípade ho vypne. Jednoduchý, ale vysoko funkčný príklad v projektoch automatizácie osvetlenia.
Obmedzenia a preventívne opatrenia
Aj keď je použitie LDR v mnohých projektoch veľmi pohodlné, je dôležité vziať do úvahy niektoré z jeho obmedzení:
- Nie sú veľmi presné, ak chcete merať presnú intenzitu svetla v luxoch.
- Jeho správanie sa môže líšiť v závislosti od teploty.
- Fungujú najlepšie na detekciu väčších zmien svetla a nie na rýchle zmeny.