V minulých hodinách jsme si ukázali práci s jednobarevnými LED diodami. Že byli jednobarevné píšu z toho důvodu, že na našem Arduinu s EduShieldem se nachází také vícebarevná LED dioda. Tato dioda je připojena ke třem pinům, kde na každém definujeme jednu barvu z RGB (+ jeden pin k uzemnění. Celkem tedy 4, ale s tím čtvrtým neinteragujeme).
Začněme jednoduchým kódem, kdy na naší RGB diodě rozsvítíme jen červenou:
#define rgb_red 9
#define rgb_green 5
#define rgb_blue 6
void setup() {
// put your setup code here, to run once:
// Nastavení odporů na diodě
pinMode(rgb_red,OUTPUT);
pinMode(rgb_green,OUTPUT);
pinMode(rgb_blue,OUTPUT);
// Nastavení barvy
digitalWrite(rgb_red, LOW);
digitalWrite(rgb_green, HIGH);
digitalWrite(rgb_blue, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
}
Pokud chceme rozsvítit zelenou, můžeme prostě nastavit rgb_green
na LOW
a všechny ostatní barvy (rgb_red
a rgb_blue
) nastavit na HIGH
.
#define rgb_red 9
#define rgb_green 5
#define rgb_blue 6
void setup() {
// put your setup code here, to run once:
// Nastavení odporů na diodě
pinMode(rgb_red,OUTPUT);
pinMode(rgb_green,OUTPUT);
pinMode(rgb_blue,OUTPUT);
// Nastavení barvy
digitalWrite(rgb_red, HIGH);
digitalWrite(rgb_green, LOW);
digitalWrite(rgb_blue, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
}
Vytvořte program, který bude po nějakém časovém intervale (například vteřina) střídat všechny barvy.
Nápověda: Pro kód ohledně nastavování barev budete chtít použít void loop()
.
Nápověda 2: Pokud chcete běh kódu na chvíli pozastavit, využijte delay()
, například delay(500);
pozastaví kód na 500 ms = polovina sekundy.
Nezapomeňte odevzdat váš kód do Google Classroom: https://classroom.google.com/c/NTkwMDUxNjcyMjUy/a/Njc1NjAyNDAyMjY4/details
V jedné z minulých hodin jsme si vytvořili semafor. Upravte ten semafor tak, aby fungoval s touto RGB LED diodou.