LED -i kustutamine sisse ja välja: 3 sammu
LED -i kustutamine sisse ja välja: 3 sammu
Anonim
Kustutage LED sisse ja välja
Kustutage LED sisse ja välja

Järgmised sammud on katsed, mis illustreerivad valgusdioodide tööd. Need illustreerivad, kuidas LED -i ühtlase kiirusega hämardada ja kuidas seda sisse ja välja kustutada.

Sa vajad:

  • Arduino (ma kasutasin duot)
  • Leivalaud
  • 5 mm punane LED
  • 330 Ω takisti (mitte kriitiline 330-560 Ω töötab.)
  • 22 gabariidi tahke haaketraat

Nende katsete jaoks vajalikud osad sisalduvad kõigis Arduino stardikomplektides.

1. samm: selgitatakse impulsi moduleerimist

Impulsi moduleerimine selgitatud
Impulsi moduleerimine selgitatud
Impulsi moduleerimine selgitatud
Impulsi moduleerimine selgitatud
Impulsi moduleerimine selgitatud
Impulsi moduleerimine selgitatud

LED -id töötavad alati sama pingega, olenemata heledusest. Heleduse määrab ruutlaine ostsillaator ja heleduse määrab ajavahemik, mille jooksul pinge on kõrge. Seda nimetatakse impulsi laiuse modulatsiooniks (PWM). Seda juhib funktsioon Arduino analogWrite (pin, n), kus n väärtus on 0 kuni 255. AnalogWrite () väljastab PWM, mitte tõelise analoogi. Kui n = 2, on LED kaks korda heledam kui n = 1. Heledus kahekordistub alati, kui n kahekordistub. Seega n = 255 on kaks korda heledam kui n = 128.

N -i väärtust väljendatakse sageli protsentides, mida nimetatakse töötsükliks. Piltidel on ostsilloskoobi jäljed 25, 50 ja 75% töötsüklite jaoks.

2. samm: ühtlase hämardamise tühistamine

Ühtlane hämardamine
Ühtlane hämardamine
Ühtlane hämardamine
Ühtlane hämardamine

Ehitage skeem nagu skeemil. See on täpselt nagu LED -i vilkumise ahel. See kasutab tihvti 9, kuna peate kasutama PWM -toega tihvti.

Kopeerige/kleepige allolev visand Arduino IDE -sse ja käivitage see.

Märkate, et mida heledam on LED, seda aeglasemalt see tuhmub. Hämara lähedale läheb hämarduma väga kiiresti.

tühine seadistus ()

{pinMode (9, VÄLJUND); } void loop () {int pin = 9; jaoks (int i = 255; i> -1; i--) {analogWrite (pin, i); viivitus (10); } jaoks (int i = 0; i <256; i ++) {analogWrite (pin, i); viivitus (10); }}

}

Järgmises etapis näidatakse, kuidas LED -i ühtlase kiirusega hämardada, ja ühes avalduses.

3. samm: üles ja alla korraga ()

Et valgusdiood tuhmuks püsiva kiirusega, peab viivitus () suurenema eksponentsiaalse kiirusega, sest pool töötsüklist annab alati poole heledusest. Minu esimene mõte oli proovida kasutada funktsiooni map (), kuid see on lineaarne.

Rida:

int d = (16-i/16)^2;

arvutab heleduse pöördruudu, et määrata viivituse pikkus.

Kopeerige/kleepige allolev visand Arduino IDE -sse ja näete, et LED kustub ja kustub ühtlase kiirusega.

tühine seadistus ()

{pinMode (9, VÄLJUND); } void loop () {int x = 1; int pin = 9; jaoks (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (tihvt, i); viivitus (d); kui (i == 255) x = -1; // tipu suuna muutmine}}