Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Järgmised sammud on katsed, mis illustreerivad valgusdioodide tööd. Need näitavad, kuidas LED -i ühtlase kiirusega hämardada ja kuidas seda sisse ja välja kustutada.
Sa vajad:
- RaspberryPi (kasutasin vanemat Pi, minu Pi-3 on kasutusel, kuid mis tahes Pi töötab.)
- Leivalaud
- 5 mm punane LED
- 330 Ω takisti (mitte kriitiline 220-560 Ω töötab.)
- Ühendage traat
Pi-cobbler, mida ma Adafruitist kasutasin, pole vajalik, kuid see muudab leivalaudamise lihtsamaks.
WiringPi on teekide komplekt RaspberryPi programmeerimiseks C -s. Juhised allalaadimiseks, installimiseks ja kasutamiseks leiate aadressilt
WiringPi installimiseks järgige sellel lehel olevaid juhiseid:
WiringPi pin -numbrite loendi saamiseks sisestage käsureale gpio readall.
Raspiani uuemates versioonides on wiringPi vaikimisi installitud.
Samm: impulsi laiuse moduleerimine
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 wiringPi pwmWrite (tihvt, n), kus n väärtus on 0 kuni 255. 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.
Samm: LED ja takisti
See pole vajalik, kuid mõned neist käepärast võivad leivalauaga sõitmise palju lihtsamaks muuta.
Jootke takisti LED -i lühikese juhtjoone külge. Kasutage 220-560 oomi takistit.
3. samm: ühtlase hämardamise tühistamine
Ehitage skeem nagu skeemil. See on täpselt nagu LED -i vilkumise ahel. See kasutab wiringPi tihvti 1, kuna peate kasutama PWM -toega tihvti. Koostage programm 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.
/******************************************************************
* Kompileeri: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Käivita: sudo./fade1 * * Kõik pin -numbrid on juhtmestikugaPi numbrid, kui pole teisiti määratud. ************************************************* ****************/ #include int main () {wiringPiSetup (); // Seadistamine on vajalik wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Märgi/tühikurežiim int i; samas (1) {jaoks (i = 255; i> -1; i--) {pwmWrite (1, i); viivitus (10); } jaoks (i = 0; i <256; i ++) {pwmWrite (1, i); viivitus (10); }}}
Järgmises etapis näidatakse, kuidas LED -i ühtlase kiirusega hämardada, ja ühes avalduses.
4. samm: 4. samm: üles ja alla ühe eest () ja ühtlase kiirusega
Et valgusdiood tuhmuks püsiva kiirusega, peab viivitus () suurenema eksponentsiaalse kiirusega, sest pool töötsüklist annab alati poole heledusest.
Rida:
int d = (16-i/16)^2;
arvutab heleduse pöördruudu, et määrata viivituse pikkus. Kompileerige ja käivitage see programm ning näete, et LED kustub ja kustub ühtlase kiirusega.
/******************************************************************
* Kompileeri: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Käivita: sudo./fade2 * * Kõik pin -numbrid on juhtmestikugaPi numbrid, kui pole teisiti määratud. ************************************************* ****************/ #include int main () {wiringPiSetup (); // Seadistamine on vajalik wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Märgi/tühikurežiim samas (1) {int i; int x = 1; jaoks (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // indeksi pwmWrite (1, i) pöördruudu arvutamine; viivitus (d); kui (i == 255) x = -1; // tipu suuna muutmine}}}