In acest articol vom folosi un led RGB impreuna cu Arduino Uno. Cu Arduino putem aprinde si stinge foarte usor un led dar in acest articol vom folosi o librarie dedicata pentru utilizarea cu ledurile RGB atat cu anod comun cat si cu catod comun.
Aceasta librarie se numesta RGBled si poate fi descarcata de aici. Instalarea acestei librarii se face accesand meniul Schita > Incarcare biblioteca > Adauga biblioteca.zip.
In acest exemplu vom folosi un modul led RGB cu catod comun. Conexiunile cu Arduino sunt simple: D11 la ledul rosu, D10 la ledul verde, D9 la ledul albastru si catodul la masa montajului.
In urmatorul sketch voi folosi toate functiile disponibile cu aceasta librarie:
#include <RGBLed.h> //includem libraria rgbled
RGBLed led(11, 10, 9, RGBLed::COMMON_CATHODE); //creem metoda de apelare a functiilor din libraria inclusa mai sus pentru ledurile RGB cu catod comun, pentru leduri rgb cu anod comun folosim ca ultim parametru COMMON_ANODE
//pinii D11, D10 si D9 se conecteaza la ledurile Rosu, Verde si Albastru, in aceasta ordine
void setup() {
}
void loop() {
led.setColor(RGBLed::GREEN); //setam culoarea verde a ledului
led.brightness(RGBLed::GREEN, 10); //setam stralucirea la 10%
delay(2000);
led.brightness(RGBLed::GREEN, 50); //setam stralucirea la 50%
delay(2000);
led.brightness(RGBLed::GREEN, 100);
delay(2000);
led.off(); //oprim ledul
delay(2000);
led.setColor(RGBLed::BLUE);
led.brightness(RGBLed::BLUE, 10);
delay(2000);
led.brightness(RGBLed::BLUE, 50);
delay(2000);
led.brightness(RGBLed::BLUE, 100);
delay(2000);
led.off();
delay(2000);
led.setColor(RGBLed::RED);
led.brightness(RGBLed::RED, 10);
delay(2000);
led.brightness(RGBLed::RED, 50);
delay(2000);
led.brightness(RGBLed::RED, 100);
delay(2000);
led.off();
delay(2000);
led.fadeIn(RGBLed::GREEN, 20, 2000); //aprindem ledul verde cu efect de fade in cu 20 de pasi in 2 secunde
led.fadeOut(RGBLed::GREEN, 20, 2000); //stingem ledul verde cu efect de fade out cu 20 de pasi in 2 secunde
delay(2000);
led.fadeIn(RGBLed::BLUE, 20, 2000);
led.fadeOut(RGBLed::BLUE, 20, 2000);
delay(2000);
led.fadeIn(RGBLed::RED, 20, 2000);
led.fadeOut(RGBLed::RED, 20, 2000);
delay(2000);
led.flash(RGBLed::GREEN, 100);
delay(500);
led.flash(RGBLed::BLUE, 100);
delay(500);
led.flash(RGBLed::RED, 100);
delay(2000);
led.setColor(23, 161, 165); //setam culoarea ledului folosind un cod RGB
delay(2000);
led.off();
delay(2000);
led.setColor(128, 0, 128);
delay(2000);
led.off();
delay(2000);
led.setColor(0, 0, 128);
delay(2000);
led.off();
delay(2000);
led.setColor(247, 84, 49);
delay(2000);
led.off();
delay(2000);
led.setColor(58, 164, 231);
delay(2000);
led.off();
delay(2000);
led.crossFade(RGBLed::RED, RGBLed::BLUE, 50, 5000); //efect de trecere de la o culoare la alta efectuata in 50 de pasi si 5 secunde
delay(2000);
led.off();
delay(2000);
led.crossFade(RGBLed::BLUE, RGBLed::GREEN, 50, 5000);
delay(2000);
led.off();
delay(2000);
led.crossFade(RGBLed::GREEN, RGBLed::RED, 50, 5000);
delay(2000);
led.off();
delay(2000);
}
Un filmulet cu montajul in functiune se poate vedea mai jos: