Cuprins:

RaspberryPi: estompare și intrare LED: 4 pași (cu imagini)
RaspberryPi: estompare și intrare LED: 4 pași (cu imagini)

Video: RaspberryPi: estompare și intrare LED: 4 pași (cu imagini)

Video: RaspberryPi: estompare și intrare LED: 4 pași (cu imagini)
Video: Cum se utilizează releul de 12V cu afișaj cu LED modul temporizator P1 până la P4 2024, Noiembrie
Anonim
RaspberryPi: estompează un LED în interior și în afara
RaspberryPi: estompează un LED în interior și în afara

Următorii pași sunt experimente pentru a ilustra modul în care funcționează LED-urile. Acestea arată cum să estompeze un LED la o rată uniformă și cum să se estompeze în interior și în afara acestuia.

Vei avea nevoie:

  • RaspberryPi (am folosit un Pi mai vechi, Pi-3 este în uz, dar orice Pi va funcționa.)
  • Pană de pâine
  • LED roșu de 5 mm
  • Rezistor de 330 Ω (nefiind critic 220-560 Ω va funcționa.)
  • Sârmă de conectare

Pi-cobbler-ul pe care l-am folosit de la Adafruit nu este necesar, dar face panoul mai ușor.

WiringPi este un set de biblioteci pentru programarea RaspberryPi în C. Instrucțiunile pentru descărcare, instalare și utilizare se află la

Pentru a instala wiringPi, urmați instrucțiunile de pe această pagină:

Pentru a obține o listă a numerelor pinului de cablare, introduceți gpio readall în linia de comandă.

În versiunile mai noi ale Raspian wiringPi este instalat în mod implicit.

Pasul 1: Modularea lățimii impulsurilor

Modulația lățimii impulsurilor
Modulația lățimii impulsurilor
Modulația lățimii impulsurilor
Modulația lățimii impulsurilor
Modulația lățimii pulsului
Modulația lățimii pulsului

LED-urile rulează întotdeauna la aceeași tensiune, indiferent de luminozitate. Luminozitatea este determinată de un oscilator cu undă pătrată și perioada de timp în care tensiunea este ridicată determină luminozitatea. Aceasta se numește Modularea lățimii impulsurilor (PWM). Acest lucru este controlat de funcția wiringPi pwmWrite (pin, n) unde n are o valoare de la 0 la 255. Dacă n = 2 LED-ul va fi de două ori mai luminos decât n = 1. Luminozitatea se dublează întotdeauna când n se dublează. Deci n = 255 va fi de două ori mai luminos decât n = 128.

Valoarea lui n este adesea exprimată ca procent numit ciclul de funcționare. Imaginile prezintă urmele osciloscopului pentru 25, 50 și 75% cicluri de funcționare.

Pasul 2: LED și rezistor

LED și rezistor
LED și rezistor

Acest lucru nu este necesar, dar dacă aveți câteva dintre acestea la îndemână, vă puteți face mult mai ușor.

Lipiți un rezistor la ledul scurt al unui LED. Folosiți un rezistor de 220-560 Ohm.

Pasul 3: Atenuare uniformă

Atenuare uniformă
Atenuare uniformă

Construiți circuitul ca în diagramă. Este la fel ca circuitul pentru a clipi un LED. Folosește pinul 1 de cablare, deoarece trebuie să utilizați un pin activat PWM. Compilați programul și rulați-l. Veți observa că cu cât LED-ul este mai luminos, cu atât este mai lent. Pe măsură ce se apropie de cea mai slabă lumină, va fi mai slabă.

/******************************************************************

* Compilați: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade1.c -lwiringPi * * Executați: sudo.. *************************************************** **************** / #include int main () {wiringPiSetup (); // Configurare cerută de wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mod Mark / Space int i; while (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); întârziere (10); } pentru (i = 0; i <256; i ++) {pwmWrite (1, i); întârziere (10); }}}

Următorul pas arată cum să estompezi LED-ul la o rată constantă și într-unul pentru instrucțiuni.

Pasul 4: Pasul 4: Sus și Jos într-unul pentru () și la o rată uniformă

Pentru ca LED-ul să se estompeze la o rată constantă, întârzierea () trebuie să crească la o rată exponențială, deoarece jumătate din ciclul de lucru va produce întotdeauna jumătate din luminozitate.

Linia:

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

calculează pătratul invers al luminozității pentru a determina lungimea întârzierii. Compilați și rulați acest program și veți vedea că LED-ul se va estompa într-un ritm constant.

/******************************************************************

* Compilați: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade2.c -lwiringPi * * Executați: sudo.. *************************************************** **************** / #include int main () {wiringPiSetup (); // Configurare cerută de wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mod Mark / Space în timp ce (1) {int i; int x = 1; pentru (i = 0; i> -1; i = i + x) {int d = (16-i / 16) ^ 2; // calc pătrat invers al indexului pwmWrite (1, i); întârziere (d); if (i == 255) x = -1; // comutați direcția la vârf}}}

Recomandat: