Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Sljedeći koraci su eksperimenti koji ilustriraju način rada LED dioda. Oni pokazuju kako jednakomjerno zatamniti LED diodu i kako je ugasiti i ugasiti.
Trebat će vam:
- RaspberryPi (koristio sam stariji Pi, moj Pi-3 je u upotrebi, ali bilo koji Pi će raditi.)
- Oglasna ploča
- 5 mm crvena LED dioda
- Otpornik od 330 Ω (nije kritično 220-560 Ω će raditi.)
- Priključna žica
Pi-cobbler koji sam koristio iz tvrtke Adafruit nije potreban, ali olakšava izradu matičnih ploča.
WiringPi je skup knjižnica za programiranje RaspberryPi u C. Upute za preuzimanje, instaliranje i korištenje nalaze se na
Za instaliranje ožičenjaPi slijedite upute na ovoj stranici:
Da biste dobili popis ožičenjaPi brojevi PIN -ova unesite gpio readall u naredbeni redak.
U novijim verzijama Raspian wiringPi je prema zadanim postavkama instaliran.
Korak 1: Modulacija širine impulsa
LED diode uvijek rade pod istim naponom bez obzira na svjetlinu. Svjetlina je određena oscilatorom pravokutnog vala, a vrijeme tijekom kojeg je napon visok određuje svjetlinu. To se naziva Pulse Width Modulation (PWM). To se kontrolira pomoću funkcije wiringPi pwmWrite (pin, n) gdje n ima vrijednost od 0 do 255. Ako je n = 2, LED će biti dvaput jača od n = 1. Svjetlina se uvijek udvostručuje kad se n udvostruči. Tako će n = 255 biti dvostruko svjetlije od n = 128.
Vrijednost n često se izražava kao postotak koji se naziva radni ciklus. Slike prikazuju tragove osciloskopa za 25, 50 i 75% ciklusa rada.
Korak 2: LED i otpornik
To nije potrebno, ali imati nekoliko ovih pri ruci može znatno olakšati izradu matične ploče.
Lemite otpornik na kratki LED diode. Koristite otpornik 220-560 Ohm.
Korak 3: Neujednačeno zatamnjivanje
Izgradite krug kao na dijagramu. Ovo je poput kruga koji treperi LED. Koristi wiringPi pin 1 jer morate koristiti pin s omogućenim PWM -om. Sastavite program i pokrenite ga. Primijetit ćete da je LED svjetlija što je svjetlija sporije slabi. Kako se približava najsvjetlijem, postat će sve slabiji vrlo brzo.
/******************************************************************
* Sastavi: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Izvrši: sudo./fade1 * * Svi pin brojevi su ožičeni Pi brojevi, osim ako nije drugačije naznačeno. ************************************************ ****************/ #include int main () {wiringPiSetup (); // Postavljanje potrebno wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Način označavanja/razmaka int i; dok (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); kašnjenje (10); } za (i = 0; i <256; i ++) {pwmWrite (1, i); kašnjenje (10); }}}
Sljedeći korak pokazuje kako zatamniti LED diodu konstantnom brzinom, au jednom za iskaz.
Korak 4: Korak 4: Gore i dolje u jednom za () i ravnomjernom brzinom
Da bi LED dioda stakla konstantnom brzinom, kašnjenje () se mora povećavati eksponencijalno jer će pola radnog ciklusa uvijek proizvoditi polovicu svjetline.
Crta:
int d = (16-i/16)^2;
izračunava obrnuti kvadrat svjetline kako bi odredio duljinu kašnjenja. Sastavite i pokrenite ovaj program i vidjet ćete da će LED svjetlo nestajati konstantnom brzinom.
/******************************************************************
* Sastavi: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Izvrši: sudo./fade2 * * Svi pin brojevi su ožičeni Pi brojevi, osim ako nije drugačije naznačeno. ************************************************ ****************/ #include int main () {wiringPiSetup (); // Postavljanje potrebno wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Način označavanja/razmaka while (1) {int i; int x = 1; za (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // izračunati inverzni kvadrat indeksa pwmWrite (1, i); odgoda (d); ako je (i == 255) x = -1; // prebacivanje smjera na vrhuncu}}}