Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Naslednji koraki so poskusi, ki ponazarjajo delovanje LED. Prikazujejo, kako enakomerno zatemniti LED in kako ga zbledeti.
Boste potrebovali:
- RaspberryPi (uporabljal sem starejši Pi, moj Pi-3 je v uporabi, vendar bo kateri koli Pi deloval.)
- Ogledna plošča
- 5 mm rdeča LED
- 330 Ω upor (ni kritično 220-560 Ω bo delovalo.)
- Priključna žica
Pi-cobbler, ki sem ga uporabil pri Adafruit, ni nujen, vendar olajša izdelavo kroga.
WiringPi je niz knjižnic za programiranje RaspberryPi v C. Navodila za prenos, namestitev in uporabo se nahajajo na
Za namestitev ožičenja Pi sledite navodilom na tej strani:
Če želite dobiti seznam ožičenja, številke pin PIN vnesite gpio readall v ukazno vrstico.
V novejših različicah Raspian wiringPi je privzeto nameščen.
1. korak: Modulacija širine impulza
LED diode vedno delujejo pri isti napetosti, ne glede na svetlost. Svetlost določa kvadratni valovni oscilator, čas, ko je napetost visoka, pa svetlost. To se imenuje Pulse Width Modulation (PWM). To nadzira funkcija wiringPi pwmWrite (pin, n), kjer ima n vrednost od 0 do 255. Če je n = 2, bo LED -dioda dvakrat svetlejša kot n = 1. Svetlost se vedno podvoji, ko se n podvoji. Torej bo n = 255 dvakrat svetlejše od n = 128.
Vrednost n je pogosto izražena kot odstotek, imenovan delovni cikel. Slike prikazujejo sledi osciloskopa za 25, 50 in 75% delovne cikle.
Korak: LED in upor
To ni nujno, vendar če imate nekaj teh pri roki, lahko olajšate izdelavo kroga.
Spajate upor na kratek vodnik LED. Uporabite upor 220-560 Ohm.
3. korak: Neenakomerno zatemnitev
Zgradite vezje, kot je prikazano na diagramu. To je tako kot vezje za utripanje LED. Uporablja ožičenje Pi pin 1, ker morate uporabiti pin, ki podpira PWM. Sestavite program in ga zaženite. Opazili boste, da svetlejša kot je LED, počasneje se zatemni. Ko se približa najtemnejšemu, bo zelo hitro zatemnilo.
/******************************************************************
* Sestavi: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Izvedi: sudo./fade1 * * Vse številke pin so ožičenje Pi številke, razen če ni drugače določeno. ************************************************ ****************/ #include int main () {wiringPiSetup (); // Zahtevana nastavitev z ožičenjemPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Označi/preskusni način int i; medtem ko (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); zamuda (10); } za (i = 0; i <256; i ++) {pwmWrite (1, i); zamuda (10); }}}
Naslednji korak prikazuje, kako zatemniti LED s konstantno hitrostjo in v enem za izjavo.
4. korak: 4. korak: gor in dol v enem za () in enakomerno
Da LED dioda zatemni s konstantno hitrostjo, se mora zakasnitev () povečati z eksponentno hitrostjo, ker bo pol delovnega cikla vedno proizvedlo polovico svetlosti.
Linija:
int d = (16-i/16)^2;
izračuna inverzni kvadrat svetlosti, da določi dolžino zamude. Sestavite in zaženite ta program in videli boste, da bo LED svetlela in bledila s konstantno hitrostjo.
/******************************************************************
* Sestavi: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Izvedi: sudo./fade2 * * Vse pin številke so ožičenje Pi številke, razen če ni drugače določeno. ************************************************ ****************/ #include int main () {wiringPiSetup (); // Zahtevana nastavitev z ožičenjemPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Označi/presledi način while (1) {int i; int x = 1; za (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // izračunaj inverzni kvadrat indeksa pwmWrite (1, i); zamuda (d); če (i == 255) x = -1; // preklop smeri na vrhuncu}}}