Atenție bolnav de electronică

Pagina pasionaților de electronică

0

Arduino control luminozitate LED. DIMMER

Mai intai realizati schema ca in imaginile alaturate.

Pentru inceput scriem o variabila pentru pinul unde conectam LEd-ul. Apoi in void loop() avem un analogWrite() cu doi parametri, unul este pinul unde este conectat LED-ul si al doilea este un dutty cilce care poate avea o valoare intre 0 si 255.

int ledPin = 9;
void setup(){

}

void loop(){
  analogWrite(ledPin, 200);
}

PWM

Pentru a regla luminozitatea LED-urilor, Arduino folosește un truc. În mod normal, ar trebui să reduceți tensiunea pentru asta. Arduino nu poate face asta. Este capabil să activeze și să oprească pinii. Dar poate face asta foarte repede. Raportul de timp între pornit și oprit determină cât de luminos este LED-ul. Acest proces se numește (PWM). Arduino nu poate efectua modularea lățimii pulsului pe fiecare pin, ci doar pe cele marcate cu o linie ondulată. Acestea sunt pinii 3, 5, 6, 9, 10 și 11. Pentru a lumina de la zero atunci vom folosi un for loop care va numara pana la 255.

for (int luminozitate = 1; luminozitate <= 255; luminozitate = luminozitate +1){

In loc de:

luminozitate = luminozitate +1

putem scrie si asa:

luminozitate++

Aceasta crește, de asemenea, variabila cu 1. Codul ar putea arăta astfel:

int ledPin = 9;
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  analogWrite(ledPin, 200);
  for (int luminozitate = 1; luminozitate <= 255; luminozitate++){
    analogWrite(ledPin, luminozitate);
    delay(15);
  }
}

Este necesară o mică întârziere pentru a putea percepe schimbarea. Acum încărcați programul pe Arduino. Acum LED-ul se aprinde lent. Ce trebuie să facem acum, pentru a se întuneca din nou? Trebuie să scrieminca un loop în care luminozitatea scade de la 255 cu 1 pe ciclu. Aceasta trebuie efectuată atât timp cât luminozitatea este mai mare de 0.

int ledPin = 9;
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  analogWrite(ledPin, 200);
  for (int luminozitate = 1; luminozitate <= 255; luminozitate++){
    analogWrite(ledPin, luminozitate);
    delay(15);
  }
  for (int luminozitate = 255; luminozitate >= 0; luminozitate = luminozitate -1){
    analogWrite(ledPin, luminozitate);
    delay(15);
  }
}

Rezumat:
Arduino control luminozitate LED DIMMER. PWM
Titlu articol:
Arduino control luminozitate LED DIMMER. PWM
Descriere:
Control luminozitate LED cu PWM, Arduino
Autor:
Publicat de:
Electronic Club
Logo

Autor: Bogdan  Gewald

Lucrez de 18 ani în industria electronică. Locuiesc în Germania, într-un oraș mic de pe lângă Frankfurt am Main și lucrez ca dezvoltator hardware și software la o firmă care dezvoltă soluții pentru industria energetică de 50 de ani.

Acum tu urmezi!

Vrei să adaugi ceva, ai sugestii, ai găsit greşeli sau postarea nu mai este actuală? Atunci aștept cu nerăbdare comentariul tău.

Desigur, poți recomanda acest articol. Sunt recunoscător pentru orice sprijin!