Arduino RGB LED modul obsahuje celkem 8 RGB LED diod a další pomocné součástky. RGB LED dioda obsahuje v jednom pouzdře, jak název napovídá, celkem tři LED diody – červenou (red), zelenou (green) a modrou (blue). Díky tomu je tedy možné na jedné RGB LED diodě dosáhnout mnoha barevných kombinací, včetně bílé barvy při zapnutí všech tří diod najednou. Co se týká napájecího napětí, tento modul je možné zapojit jak na 5V Arduina, tak i na 3,3 V, pokud chceme dosáhnout menšího svitu LED diod. Ovládání všech datových pinů se pak řídí touto logikou: přivedení GND na pin = zapnuto, VCC = vypnuto.

Arduino RGB LED modul

Pro úspěšné propojení RGB LED modulu s Arduino deskou je nutné zapojit 12 propojovacích pinů. Propojíme VCC s 5V Arduina, D0 až D7 s piny D0 až D7 Arduina, R s pinem D10, G s pinem D11 a B s pinem D12. Pro všechny datové piny (D0-D7, R, G, B) lze využít také ostatní piny Arduina, ale je nutné tuto volbu provést v programu.

Schéma zapojení Arduino RGB LED modulu

Ukázkový kód obsahuje na svém začátku nastavení čísel propojovacích pinů pro RGB piny a následně pro LED piny. V podprogramu setup je provedena inicializace všech datových pinů (RGB a LED) na výstupní a zároveň je každý pin nastaven na logickou 1, aby byl vypnut (viz konec úvodního odstavce). Nekonečná smyčka loop obsahuje na svém začátku for smyčku, která prochází hlavních 8 kombinací barev. Při každém průběhu označeném číslem x vytvoříme proměnnou typu pole o třech prvcích, a do těchto prvků převedeme aktuální číslo běhu do binárního tvaru (1 = bin 001, 7 = bin 111). Poté nastavíme RGB kombinaci na přepočtený binární tvar (je nutné znegovat pro splnění logiky spínání) a zároveň zapneme x-tou LED diodu po dobu 1 milisekundy a poté ji vypneme. Díky této for smyčce tedy dosáhneme takového výsledku, že nultá LED dioda je vypnuta (barevná kombinace 000) a všechny další diody mají vždy barvu své kombinace (například poslední LED dioda má zapnuté všechny RGB segmenty (barevná kombinace 111) a díky tomu svítí bílou barvou). Pod touto testovací for smyčkou se pak ještě nachází v komentáři ukázka samostatného rozsvícení sedmé LED diody modrou barvou, pauza 500 milisekund a poté zhasnutí sedmé LED diody.

// Arduino RGB LED modul

// RGB piny v pořadí RGB - červená, zelená, modrá
const int rgbPiny[] = {10,11,12};
// LED piny v pořadí D0 až D7
const int ledPiny[] = {0,1,2,3,4,5,6,7};

void setup() {
  // inicializace propojovacích pinů modulu
  // jako výstupních a nastavení na logickou 1
  for(int x=0; x<3; x++)
  {
    pinMode(rgbPiny[x], OUTPUT);
    digitalWrite(rgbPiny[x], HIGH);
  }
  for(int x=0; x<8; x++)
  {
    pinMode(ledPiny[x], OUTPUT);
    digitalWrite(ledPiny[x], HIGH);
  }
}

void loop() {
  // for smyčka pro otestování hlavních kombinací barev
  for(int x=0; x<8; x++)
  {
    // proměnná pro uložení barevné kombinace
    int barva[2];
    // převod čísla aktuálního běhu do binárního tvaru
    barva[0] = x % 2;
    barva[1] = (x % 4) / 2;
    barva[2] = x / 4;
    // nastavení aktuální barevné kombinace,
    // nutná negace (!) pro obrácenou logiku spínání
    digitalWrite(rgbPiny[0], !(barva[0]));
    digitalWrite(rgbPiny[1], !(barva[1]));
    digitalWrite(rgbPiny[2], !(barva[2]));
    // zapnutí x-té LED diody
    // po dobu 1 milisekundy
    // pro potlačení blikání
    digitalWrite(ledPiny[x], LOW);
    delay(1);
    digitalWrite(ledPiny[x], HIGH);
  }
  // ukázka blikání poslední LED modrou barvou
  /*
  // sepnutí druhého RGB pinu (modrá)
  digitalWrite(rgbPiny[2], LOW);
  // sepnutí sedmého LED pinu (poslední LED)
  digitalWrite(ledPiny[7], LOW);
  // pauza 500 milisekund 
  delay(500);
  // vypnutí RGB a LED pinů
  digitalWrite(rgbPiny[2], HIGH);
  digitalWrite(ledPiny[7], HIGH);
  // pauza 500 milisekund 
  delay(500);
  */
}

Po nahrání ukázkového programu do Arduino desky s připojeným RGB LED modulem dostaneme takovýto výsledek:

Ukázka funkce Arduino RGB LED modulu

Arduino RGB LED modul je zajímavým zobrazovacím prvkem, který nám umožňuje poměrně jednoduše komunikovat s uživatelem za pomocí různých barev a zároveň různým počtem rozsvícených LED diod. Mezi výhody tohoto modulu patří například jeho příznivá cena či přítomnost montážních děr na modulu, díky kterým ho lze snadno přichytit do vlastního zařízení.

 

Seznam použitých komponent:

http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

http://dratek.cz/arduino/926-arduino-rgb-led-modul-1421014235.html

FB tw

Další podobné články