- Potreban materijal
- Kružni dijagram
- Šifra i objašnjenje
- Kako automatski kontrolira intenzitet svjetlosti:
"Budi sjajna iskra, svjetla se pale dok se ne smrači!" ponekad zaboravimo isključiti svjetla i trošiti električnu energiju, a sigurno ste i danju vidjeli upaljeno svjetlo. Već smo izgradili nekoliko sklopova na detektoru mraka gdje se svjetla automatski isključuju ako je vani svijetlo i uključuju se ako je vani mrak. Ali ovog puta, u ovom krugu ne uključujemo i isključujemo svjetla samo na temelju svjetlosnih uvjeta, već također mijenjamo intenzitet svjetlosti prema vanjskim svjetlosnim uvjetima. Ovdje smo koristili LDR i PWM koncept s Arduinom za automatsko smanjivanje ili povećanje svjetline 1 W snage.
U osnovi, PWM se odnosi na modulaciju širine impulsa, izlazni signal putem PWM pina bit će analogni signal i dobiven kao digitalni signal od Arduina. Koristi radni ciklus digitalnog vala za generiranje sekvencijalne analogne vrijednosti za signal. I taj se signal dalje koristi za kontrolu svjetline LED napajanja.
Potreban materijal
- Arduino UNO
- LDR
- Otpornik (510, 100 k ohma)
- Kondenzator (0,1uF)
- Tranzistor 2N2222
- LED snage snage 1 W
- Spajanje žica
- Breadboard
Kružni dijagram

Šifra i objašnjenje
Kompletni Arduino kod za automatsko LED zatamnjenje dat je na kraju.
U donjem kodu definiramo PWM pin i varijable koje će se koristiti u kodu.
int pwmPin = 2; // dodjeljuje pin 12 varijabli pwm int LDR = A0; // dodjeljuje analogni ulaz A0 varijabilnom pot int c1 = 0; // proglašava varijablu c1 int c2 = 0; // deklarira varijablu c2
Sada, u petlji, prvo čitamo vrijednost pomoću naredbe "analogRead (LDR)", a zatim spremimo analogni ulaz u varijablu pod nazivom "value" . Nekim matematičkim proračunom generiramo PWM signal. Ovdje kontroliramo intenzitet svjetlosti pomoću PWM-a samo ako je analogna vrijednost manja od 500, a ako je veća od 500, potpuno isključujemo svjetla.
int vrijednost = analogRead (LDR); Serial.println (vrijednost); c1 = vrijednost; c2 = 500-cl; // oduzima 1000 c2 od 1000 ans, a rezultat se sprema u c1 if (vrijednost <500) { digitalWrite (pwmPin, HIGH); delayMicroseconds (c2); digitalWrite (pwmPin, LOW); delayMicroseconds (c1); } if (vrijednost> 500) { digitalWrite (2, LOW); } }
Ovdje možete saznati više o PWM-u u Arduinu.
Kako automatski kontrolira intenzitet svjetlosti:
Prema shemi sklopa, napravili smo krug djelitelja napona pomoću LDR i otpornika 100k. Izlaz razdjelnika napona napaja se na analogni pin Arduina. Analogni pin osjeća napon i daje neku analognu vrijednost Arduinu. Analogna vrijednost mijenja se prema otporu LDR. Dakle, ako je iznad LDR-a mrak, njegov otpor se povećava i stoga vrijednost napona (analogna vrijednost) opada. Stoga analogne vrijednosti variraju PWM izlaz ili radni ciklus, a radni ciklus je dalje proporcionalan intenzitetu svjetla LED snage. Tako će svjetlost iznad LDR-a automatski kontrolirati intenzitet LED napajanja. Ispod je dijagram toka kako će to funkcionirati, znak strelice nagore označava "povećanje", a znak strelice dolje "smanjuje se".
Intenzitet svjetlosti (na LDR-u) ↓ - Otpor ↑ - Napon na analognom pinu D - Radni ciklus (PWM) ↑ - Svjetlina LED za napajanje ↑
Ako je vani potpuno svijetlo (kada se analogna vrijednost poveća više od 500), lampica napajanja se isključuje.
Na ovaj način možete automatski kontrolirati intenzitet svjetlosti pomoću LDR-a.
Dalje ovdje provjerite sve krugove povezane s LDR-om.
