"Vær en lys gnist, lyser til det er mørkt!" noen ganger glemmer vi å slå av lysene og kaste bort strøm, og du må ha sett gatelys slått på om dagen. Vi har allerede bygget få kretsløp på Dark detector der lysene slukkes automatisk hvis det er sterkt ute og slår seg på hvis det er mørkt ute. Men denne gangen, i denne kretsen, slår vi ikke bare lys på og av basert på lysforhold, men varierer også lysintensiteten i henhold til lysforholdene utenfor. Her har vi brukt LDR og PWM-konsept med Arduino for å redusere eller øke lysstyrken på 1 watt Power LED automatisk.
I utgangspunktet refererer PWM til Pulse Width Modulation, utgangssignalet via en PWM-pinne vil være et analogt signal og anskaffet som et digitalt signal fra Arduino. Den bruker driftssyklusen til den digitale bølgen for å generere den sekvensielle analoge verdien for signalet. Og signalet brukes videre til å kontrollere lysstyrken på strøm-LED-en.
Nødvendig materiale
- Arduino UNO
- LDR
- Motstand (510, 100k ohm)
- Kondensator (0.1uF)
- Transistor 2N2222
- 1 watt strøm-LED
- Koble ledninger
- Brettbrett
Kretsdiagram
Kode og forklaring
Den komplette Arduino-koden for automatisk LED-dimmer er gitt på slutten.
I koden nedenfor definerer vi PWM-pinnen og variablene som skal brukes i koden.
int pwmPin = 2; // tilordner pin 12 til variabel pwm int LDR = A0; // tildeler analog inngang A0 til variabel pot int c1 = 0; // erklærer variabel c1 int c2 = 0; // erklærer variabel c2
Nå, i sløyfen, leser vi først verdien ved hjelp av kommandoen “analogRead (LDR)” og lagrer deretter den analoge inngangen i en variabel som heter “verdi” . Ved å gjøre noen matematiske beregninger genererer vi PWM-signalet. Her kontrollerer vi lysintensiteten bare ved bruk av PWM hvis den analoge verdien er mindre enn 500, og hvis den er mer enn 500 slår vi av lysene helt.
int-verdi = analogRead (LDR); Serial.println (verdi); c1 = verdi; c2 = 500-c1; // trekker c2 fra 1000 år, lagrer resultatet i c1 hvis (verdi <500) { digitalWrite (pwmPin, HIGH); forsinkelse Mikrosekunder (c2); digitalWrite (pwmPin, LOW); forsinkelse Mikrosekunder (c1); } hvis (verdi> 500) { digitalWrite (2, LAV); } }
Du kan lære mer om PWM i Arduino herfra.
Hvordan det automatisk styrer lysintensiteten:
I henhold til kretsdiagrammet har vi laget en spenningsdelerkrets med LDR og 100k motstand. Spenningsdelerutgangen mates til den analoge pinnen til Arduino. Den analoge stiften registrerer spenningen og gir litt analog verdi til Arduino. Den analoge verdien endres i henhold til motstanden til LDR. Så hvis det er mørkt over LDR, blir motstanden økt, og dermed reduseres spenningsverdien (analog verdi). Derfor varierer den analoge verdien PWM-utgangen eller driftssyklusen, og driftssyklusen er ytterligere proporsjonal med lysintensiteten til strøm-LED. Så lyset over LDR vil automatisk kontrollere intensiteten til strømlampen. Nedenfor er flytskjemaet hvordan dette vil fungere, oppoverpilsignal indikerer "økende" og ulempesymbol indikerer "avtagende".
Lysintensitet (på LDR) ↓ - Motstand ↑ - Spenning ved analog stift ↓ - Driftssyklus (PWM) ↑ - Lysstyrke på strøm-LED ↑
Hvis det er fullt lys utenfor (når den analoge verdien øker mer enn 500), slås strømlampen av.
Slik kan du kontrollere lysstyrken automatisk ved hjelp av LDR.
Se videre alle våre LDR-relaterte kretser her.