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.
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):
A rajzon pedig mutatja, hogy melyik pin hova tartozik az Arduino-n:
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ő.