RGB led: megjött a családi csomag, kihasználom
2018. január 27. írta: hahópihehh

RGB led: megjött a családi csomag, kihasználom

Miután bebizonyítottam, hogy megérte a befektetést a kezdő Arduino szett, összeválogattunk egy nagy adag matatnivalót, amiben végre van RGB led.

img_2658_1.JPG

Ezzel végre egész könnyen elboldogultam, volt egy kis fennakadásom a setColor résszel, de mondhatni gyorsan megértettem azt is. Az összekötés gyakorlatilag ránézésre ment már, mert a led bár alapból bele van építve egy kis lapba az ellenállásokkal, ezért nem is kellett annyit vesződni vele, csak azt kellett megnéznem, hogy melyik pinre melyik színt adta meg a programban a szerző, és innentől magamtól is össze tudtam kötni a ledet a boarddal.

Magán a kis lapocskán rajta van, hogy melyik pin melyik (balról jobbra: kék, zöld, piros, föld):

img_2661_1.JPG

A rajzon pedig mutatja, hogy melyik pin hova tartozik az Arduino-n:

rgb.JPG

A programozás része sem volt túl bonyolult.

Első lépésben megadtuk a pinekhez tartozó portokat:

1
2
3
int redPin = 11;
int greenPin = 10;
int bluePin = 9;


A setup részben beállítottuk a board pinjeit outputra, hogy tudjuk írni.

1
2
3
4
5
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);  
}


A második lépés a loop, amiben a három paraméter meghatározza, hogy melyik színnek milyen legyen a fényereje (ha 255-nél kisebb a szám, a led halványabban fog világítani):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
void loop() {
 
setColor(255, 0, 0);  // red
delay(1000);
setColor(0, 255, 0);  // green
delay(1000);
setColor(0, 0, 255);  // blue
delay(1000);
setColor(255, 255, 0);  // yellow
delay(1000);  
setColor(80, 0, 80);  // purple
delay(1000);
setColor(0, 255, 255);  // aqua
delay(1000);
}


Az utolsó összetevő a programban az analogWrite parancs:

1
2
3
4
5
void setColor(int red, int green, int blue){
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);  
}


Itt jött az, ami kb. tíz percre lefoglalta a teljes agyállományomat, mert össze kellett raknom, hogy ennek a paraméterei mit jelentenek, aztán megláttam az összefüggést az előző setColor-ral, amiben a három paraméterben az egyes ledek fényerejét határozta meg, hogy világítson-e és ha igen, milyen fényerővel, ebben pedig először elnevezi a három paramétert a színek szerint, amit az analogWrite felhasznál, amikor a pinre küldi az adott színhez tartozó fényerőt.

loop setColor (255, 0, 0); ----> void setColor (int red, int green, int blue)
=
az első világít csak ----> az első paraméter a piros

|
|
V

analogWrite (redPin, red) --> int redPin = 11;
=
a piroshoz rendelt pinre a pirosat ----> a piros pin a 11 porton

Amikor más színt szeretnénk kihozni, akkor ugyanez a logika fog működni, csak egyszerre több alapszínt kell működésre bírni:

loop setColor (0, 255, 255); ----> void setColor (int red, int green, int blue)
=
az utolsó két led világítson ----> az utolsó két paraméter a zöld és a kék


Ez nekem a blogírással együtt tartott másfél órán keresztül, úgyhogy ezt egy érdeklődőbb óvodás is egy unalmasabb délután össze tudja dobni :)

Sajnos a videó elég gyenge minőségű, de az látszik, ahogy változnak a színek.

E.

A teljes program ebben a fájlban megtekinthető.

A bejegyzés trackback címe:

https://nemertekalovakhozdeazertvanegy.blog.hu/api/trackback/id/tr8813608719

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása