- Tarvittava materiaali
- Piirikaavio
- Koodi ja selitys
- Kuinka se säätää valon voimakkuutta automaattisesti:
"Ole kirkas kipinä, syttyy, kunnes on pimeää!" joskus unohdamme sammuttaa valot ja hukata sähköä, ja sinun on myös pitänyt nähdä katuvalo sytytettynä päivällä. Olemme jo rakentaneet muutamia piirejä pimeälle ilmaisimelle, jossa valot sammuvat automaattisesti, jos se on kirkasta ulkona, ja syttyy, jos ulkona on pimeää. Mutta tällä kertaa tässä virtapiirissä emme vain sytytä ja sammuta valoja valaistusolosuhteiden perusteella, vaan myös vaihtelemme valon voimakkuutta ulkopuolisten valaistusolosuhteiden mukaan. Tässä olemme käyttäneet Arduinon kanssa LDR- ja PWM-konsepteja 1 watin teho-LEDin kirkkauden vähentämiseen tai lisäämiseen automaattisesti.
Periaatteessa PWM viittaa pulssinleveyden modulointiin, PWM-nastan kautta lähtevä lähtösignaali on analoginen signaali ja se hankitaan digitaalisena signaalina Arduinolta. Se käyttää digitaalisen aallon toimintajaksoa peräkkäisen analogisen arvon tuottamiseen signaalille. Tätä signaalia käytetään edelleen virran LED-valon kirkkauden säätämiseen.
Tarvittava materiaali
- Arduino UNO
- LDR
- Vastus (510, 100k ohm)
- Kondensaattori (0.1uF)
- Transistori 2N2222
- 1 watin virran LED
- Johtojen liittäminen
- Leipälauta
Piirikaavio
Koodi ja selitys
Automaattisen LED-himmentimen täydellinen Arduino-koodi on annettu lopussa.
Alla olevassa koodissa määritämme PWM-nastan ja koodissa käytettävät muuttujat.
int pwmPin = 2; // osoittaa nastan 12 muuttujalle pwm int LDR = A0; // määrittää analogisen tulon A0 muuttuvalle potille int c1 = 0; // ilmoittaa muuttujan c1 int c2 = 0; // ilmoittaa muuttujan c2
Nyt silmukassa luemme ensin arvoa komennolla “analogRead (LDR)” ja tallennamme sitten analogisen tulon muuttujaan nimeltä arvo . Suorittamalla matemaattista laskutoimitusta muodostamme PWM-signaalin. Tässä valvomme valon voimakkuutta PWM: n avulla vain, jos analoginen arvo on alle 500, ja jos se on yli 500, sammutamme valot kokonaan.
int-arvo = analoginen luku (LDR); Serial.println (arvo); c1 = arvo; c2 = 500-c1; // vähentää c2 1000 ans: sta tallentaa tuloksen c1: een, jos (arvo <500) { digitalWrite (pwmPin, HIGH); viive mikrosekuntia (c2); digitalWrite (pwmPin, LOW); viive mikrosekuntia (c1); } if (arvo> 500) { digitalWrite (2, LOW); } }
Voit oppia lisää PWM: stä Arduinossa täältä.
Kuinka se säätää valon voimakkuutta automaattisesti:
Piirikaavion mukaisesti olemme tehneet jännitteenjakajan piirin LDR- ja 100k-vastuksella. Jännitteenjakajan lähtö syötetään Arduinon analogiseen tapiin. Analoginen tappi tunnistaa jännitteen ja antaa jonkin verran analogista arvoa Arduinolle. Analoginen arvo muuttuu LDR-resistanssin mukaan. Joten, jos LDR: n yläpuolella on pimeää, sen vastus kasvaa ja jännitteen arvo (analoginen arvo) pienenee. Siksi analoginen arvo vaihtelee PWM-lähtöä tai työjaksoa, ja käyttöjakso on edelleen verrannollinen tehon LED-valon voimakkuuteen. Joten LDR: n yläpuolella oleva valo säätää virran LED-valon voimakkuutta automaattisesti. Alla on vuokaavio, miten tämä toimii. Ylöspäin osoittava nuolimerkki osoittaa "kasvavaa" ja alaspäin osoittava nuoli osoittaa "pienenevää".
Valon voimakkuus (LDR: llä) ↓ - Vastus ↑ - Jännite analogisella tapilla ↓ - Toimintajakso (PWM) ↑ - Virran LED- valon kirkkaus ↑
Jos virran merkkivalo sammuu kokonaan kirkkaasti ulkona (kun analoginen arvo nousee yli 500).
Näin voit säätää valon voimakkuutta automaattisesti LDR: n avulla.
Tarkista kaikki LDR-piirit täällä.