1001cosmetice.ro

Folosirea unui LED RGB cu Arduino

Updated: Aug 1

Ce este si cum functioneaza un LED RGB?


Un LED RGB poate emite lumina de orice culoare,"amestecand" trei culori diferite:rosu,verde si albastru.

Un LED RGB este compus din trei LED-uri diferite,fiecare emitand lumina de o culoare diferita (rosie,verde sau albastra),prin urmare orice LED de acest tip este mai mare si are 4 pini,un pin pentru fiecare LED din componenta si un catod / anod comun,depinzand de tipul LED-ului RGB.Cea mai comuna varianta este cea cu catod comun,care va fi folosita in acest tutorial:

Prin modificara luminozitatii LED-urilor de diferite culori (prin tehnica PWM aplicata individual fiecarui LED),putem recrea aproape orice culoare.Daca mentinem aprinse toate LED-urile in proportii egale,obtinem lumina alba.Daca stingem LED-ul verde,obtinem lumina violet.Daca lasam doar LED-ul rosu aprins,LED-ul RGB va lumina rosu s.a.m.d:

Montajul


LED-ul are 4 pini:pinul cel mai lung este catodul (se conecteaza la GND),iar ceilalti pini se conecteaza la oricare trei pini digitali de pe placa,adaugand si cate un rezistor de 220 ohmi la fiecare conexiune (in total trei rezistori;in exemplu am folosit pinii 5,6 si 7):

Programul


Programul de mai jos va aprinde LED-ul RGB timp de 3 secunde,cu o culoare si o intensitate definita in program cum este explicat mai jos:


int rosu=7; //creare variabila "rosu" care contine pinul 7

int verde=6; //creare variabila "verde" care contine pinul 6

int albastru=5; //creare variabila "albastra" care contine pinul 5


void setup() {

pinMode(rosu, OUTPUT); //initializare pin "rosu" pentru emisie

pinMode(verde, OUTPUT); //initializare pin "verde" pentru emisie

pinMode(albastru, OUTPUT); //initializare pin "albastru" pentru emisie


culoare(255,255,255); //executare functie culoare cu parametrii cu valorile 255,255,255 (valorile se pot modifica)

delay(10000); // asteapta 3 secunde

culoare(0,0,0); //executare functie culoare cu parametrii cu valorile 0,0,0

}


void loop() {

}


void culoare(int valoareRosu, int valoareVerde, int valoareAlbastru){ */creare functie culoare cu trei parametri intregi:valoareRosu,valoareVerde,valoareAlbastru */

analogWrite(rosu,valoareRosu); /*trimite semnal analog prin pinul "rosu" egal cu valoarea variabilei valoareRosu */

analogWrite(verde,valoareVerde); /*trimite semnal analog prin pinul "verde" egal cu valoarea variabilei valoareVerde */

analogWrite(albastru,valoareAlbastru); /*trimite semnal analog prin pinul "albastru" egal cu valoarea variabilei valoareAlbastru */

}


Pentru a usura manipularea celor trei LED-uri din componenta (numite rosu,verde si albastru si pinii corespunzatori de asemenea) vom crea o functie (numita culoare) care foloseste trei parametri,corespunzatori celor trei pini numiti valoareRosu,valoareVerde si valoareAlbastru.

Oricare parametru este cuprins intre 255 (luminozitate maxima) si 0 (stins). Prin modificarea valorii parametrilor (in functia culoare),si implicit a luminozitatii celor trei LED-uri,putem recrea aproape orice culoare RGB:

color(255,255,255)-alb
color(255,0,0)-rosu
color(0,255,0)-verde
color(0,0,255)-albastru
color(255,0,200)-violet

int rosu=7; //creare variabila "rosu" care contine pinul 7

int verde=6; //creare variabila "verde" care contine pinul 6

int albastru=5; //creare variabila "albastra" care contine pinul 5


void setup() {

pinMode(rosu, OUTPUT); //initializare pin "rosu" pentru emisie

pinMode(verde, OUTPUT); //initializare pin "verde" pentru emisie

pinMode(albastru, OUTPUT); //initializare pin "albastru" pentru emisie

}


void loop() {

culoare(255, 0, 0); //lumina rosie

delay(1000); //asteapta 1 secunda

culoare(0, 255, 0); //lumina verde

delay(1000); //asteapta 1 secunda

culoare(0, 0, 255); //lumina albastra

delay(1000); //asteapta 1 secunda

culoare(255, 255, 255); //lumina alba

delay(1000); //asteapta 1 secunda

culoare(170, 0, 255); //lumina violet

delay(1000); //asteapta 1 secunda


}


void culoare(int valoareRosu, int valoareVerde, int valoareAlbastru){ //creare functie culoare cu trei parametri intregi:valoareRosu,valoareVerde,valoareAlbastru

analogWrite(rosu,valoareRosu); //trimite semnal analog prin pinul "rosu" egal cu valoarea variabilei valoareRosu

analogWrite(verde,valoareVerde); //trimite semnal analog prin pinul "verde" egal cu valoarea variabilei valoareVerde

analogWrite(albastru,valoareAlbastru); //trimite semnal analog prin pinul "albastru" egal cu valoarea variabilei valoareAlbastru

}


Acest program va aprinde LED-ul timp de o secunda prin cele 4 culori prezentate mai sus:rosu,verde,albastru,alb si violet.

0 views
This site was designed with the
.com
website builder. Create your website today.
Start Now
evomag.ro