UNO LED cu intensitate variabila
Un program simplu pentru Arduino.
Voi folosi un LED de 3v pe care îl leg la pinul 10 cu un rezistor de 1kΩ.
Acest led se aprinde atunci când pinul 10 digital este pus in HIGH şi se stinge atunci când pinul 10 este pus în LOW.
Acum îi voi varia aprinderea.
Deşi UNO nu scoate tensiune variabilă pe porturile digitale, exista o posibilitate de a genera un semnal dreptunghiular între 0V și 5V, foarte rapid, şi în funcție de cât timp stă în 5V și cat timp sta in 0V, puterea semnalului variază.
Numele acestui gen de semnal este „PWM„.
De remarcat faptul că doar pinii 3, 5, 6, 9, 10 şi 11 sunt capabili să genereze semnal PWM.
Voi scrie un cod :
void setup() {
pinMode(10, OUTPUT);
}
void loop() {
for (int i = 0; i < 255; i++) {
analogWrite(10, i);
delay(50);
}
for (int i = 255; i > 0; i–) {
analogWrite(10, i);
delay(50);
}
}
Acum voi face upload la program pe placa UNO prin USB.
Să analizăm codulul de mai sus.
La ” void setup”.
Avem o singură instrucţiune, care declară că pinul 10 digital va fi folosit ca ieşire (OUTPUT).
La ” void loop”.
Avem instrucţiunea analogWrite, care defineşte puterea semnalului PWM de ieşire.
Ca parametri, instrucţiunea analogWrite primeste pinul (10, în cazul meu), şi puterea
semnalului (variabilă, de la 0 la 255).
Aceasta instrucţiune este apelată într-un ciclu “for”, care modifică
valoarea variabilei “I” între 0 si 255.
Efectul va fi ca led-ul se va aprinde gradat pană la maxim, iar apoi se va stinge treptat.
Succes !
Colectivul Roboromania