8
RGB LED Task : Vrem ca un led RGB sa lumineze in diferite culori Echipament necesar: Microcontroler/ un led RGB/ trei rezistori de 200 Ohm/ Breadboard/ fire Ce este un led RGB? Este un led care este in masura sa lumineze in diferite culori. RGB provine de la culorile “red”(rosu), “green”(verde) si “blue”(albastru). In interiorul ledului RGB se gasesc trei leduri separate, fiecare putand lumina in una din cele trei culori. Acesta este motivul pentru care ledul RGB are patru contacte. Cel mai lung poate fi (depinde de versiune) anodul (+) sau catodul (-). Celelalte contacte apartin ledurilor de diferite culori.

RGB LED - Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

Embed Size (px)

Citation preview

Page 1: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

RGB LEDTask : Vrem ca un led RGB sa lumineze in diferite culori

Echipament necesar: Microcontroler/ un led RGB/ trei rezistori de 200 Ohm/ Breadboard/ fire

Ce este un led RGB? Este un led care este in masura sa lumineze in diferite culori. RGB provine de la culorile “red”(rosu), “green”(verde) si “blue”(albastru). In interiorul ledului RGB se gasesc trei leduri separate, fiecare putand lumina in una din cele trei culori. Acesta este motivul pentru care ledul RGB are patru contacte. Cel mai lung poate fi (depinde de versiune) anodul (+) sau catodul (-). Celelalte contacte apartin ledurilor de diferite culori.

Versiuna a; “Catod comun”- Cel mai lung contact al ledului RGB este “-“. In acest caz, celelalte trei contacte ar trebui legate la borna pozitiva (5V).

Versiunea b; “Anod comun” – Cel mai lung contact al ledului RGB este “+”. Asta inseamna ca celelalte trei contacte sunt legate la borna negativa (GND).

Este posibil sa se produca mai multe culori, amestecand culorile de baza. De exemplu, vom obtine “galben” amestecand “albastru” si “verde”.

Page 2: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

Iata o modalitate simpla de a afla ce versiune de led RGB aveti. Aplicati “+” si “-“ pe led. Doar ledul conectat cu polaritate corecta va functiona.

Setup pentru versiunea a:

Page 3: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

Setup pentru versiunea b:

Page 4: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

Arduino este un microcontroler digital. La iesire putem avea doar “turn on” 5V sau “turn off” 0V. Dar pentru a realiza mai multe culori, celor trei culori de baza ale ledului ar trebui sa li se aplice si valori intermediare ale tensiunii. Din acest motiv, vom utiliza Pulse With Modulation. Pinii care pot fi utilizati cu PWM au un mic semn odulatoriu in fata numarului (“~”).

Page 5: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

PWM permite obtinerea de tensiuni cuprinse intre +5V si 0V. Acest lucru se poate realiza prin aplicarea tensiunii maxime de 5V intervale scurte de timp (de ordinul milisecundelor) – pulsuri de tensiune. La o frecventa ridicata a unui astfel de semnal, se obtine practic o tensiune constanta pe pin. La o frecventa joasa a semnalului se pot obtine doar tensiuni apropiate valorii de 5V (puteti aprofunda subiectul pe internet). Cu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila.

Urmatorul cod functioneaza cu ambele versiuni de RGB.

Sketch 1:

Cu ajutorul acestui cod vom putea aprinde si stinge cele trei culori pe rand, una cate una.

int LEDblue=3; //culoarea albastra este pe pinul 3

int LEDred=5; //culoarea rosie este pe pinul 5

int LEDgreen=6; //culoarea verde este pe pinul 6

Page 6: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

int b=1000; //b defineste pauza de 1000 ms (1 secunda)

int brightnessblue=150; //valoare cuprinsa intre 0 si 255 – defineste stralucirea unei //singure culori - albastru

int brightnessred=150; //valoare cuprinsa intre 0 si 255 – defineste stralucirea unei //singure culori - rosu

int brightnessgreen=150; //valoare cuprinsa intre 0 si 255 – defineste stralucirea unei //singure culori - verde

int dark=0; //valoarea 0 pentru tensiune 0V – ledul va fi stins

void setup()

{

pinMode(LEDblue, OUTPUT);

pinMode(LEDgreen, OUTPUT);

pinMode(LEDred, OUTPUT);

}

void loop()

{

analogWrite(LEDblue, brightnessblue); // aprinde becul albastru

delay(b); //pauza

analogWrite(LEDblue, dark); // stinge becul albastru

analogWrite(LEDred, brightnessred); // aprinde becul rosu

delay(b); //pauza

analogWrite(LEDred, dark); // stinge becul rosu

analogWrite(LEDgreen, brightnessgreen); // aprinde becul verde

delay(b); //pauza

analogWrite(LEDgreen, dark); // stinge becul verde

}

Sketch 2:

Acest cod permite aprinderea simultana a cate doua leduri. In acest mod vom putea obtine culorile galben, turcoaz si violet.

int LEDblue=3; //culoarea albastra este pe pinul 3

Page 7: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

int LEDred=5; //culoarea rosie este pe pinul 5

int LEDgreen=6; //culoarea verde este pe pinul 6

int b=1000; //b defineste pauza de 1000 ms (1 secunda)

int brightnessblue=150; //valoare cuprinsa intre 0 si 255 – defineste stralucirea unei //singure culori - albastru

int brightnessred=150; //valoare cuprinsa intre 0 si 255 – defineste stralucirea unei //singure culori - rosu

int brightnessgreen=150; //valoare cuprinsa intre 0 si 255 – defineste stralucirea unei //singure culori - verde

int dark=0; //valoarea 0 pentru tensiune 0V – ledul va fi stins

void setup()

{

pinMode(LEDblue, OUTPUT);

pinMode(LEDgreen, OUTPUT);

pinMode(LEDred, OUTPUT);

}

void loop()

{

analogWrite(LEDblue, brightnessblue); // albastru si rosu aprinse = violet aprins

analogWrite(LEDred, brightnessred);

delay(b); //pauza

analogWrite(LEDblue, dark); // albastru si rosu stinse = violet stins

analogWrite(LEDred, dark);

analogWrite(LEDgreen, brightnessgreen); // verde si rosu aprinse = galben aprins

analogWrite(LEDred, brightnessred);

delay(b); //pauza

analogWrite(LEDgreen, dark); // verde si rosu stinse = galben stins

analogWrite(LEDred, dark);

analogWrite(LEDblue, brightnessblue); // albastru si verde aprinse = turcoaz aprins

analogWrite(LEDgreen, brightnessgreen);

delay(b); //pauza

analogWrite(LEDblue, dark); // albastru si verde stinse = turcoaz stins

Page 8: RGB LED -    Web viewCu PWM este posibil sa obtinem aproape acelasi efect ca si cum tensiunea ar fi variabila. Urmatorul cod functioneaza cu ambele versiuni de RGB. Sketch 1:

analogWrite(LEDgreen, dark);

}