Chytrá WiFi zásuvka Sonoff S26
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
RGB SMD LED modul je výstupní modul nejen pro Arduino. Tento modul obsahuje vysoce svítivou SMD LED diodu typu 5050. Na této diodě se ve skutečnosti nachází tři samostatné LED diody v barvách červená, zelená a modrá, tedy anglicky RGB (red, green, blue). Optimální hodnoty napájecího napětí pro jednotlivé barvy jsou 1,78 V pro červenou, 2,38 V pro zelenou a 2,59 V pro modrou. Maximální proudový odběr pro každou barvu je pak 20 mA. Co se týká velikosti celého modulu, tak ta je 20x10 mm. A typ zapojení modulu je se společnou katodou neboli „mínusem“.
Pro úspěšné propojení RGB LED modulu a Arduino desky propojíme celkem 4 vodiče. Připojíme „–„ na zem Arduina, R na pin D9, G na pin D10 a B na pin D11. Pro digitální piny lze použít také jiné volné, ale pro využití funkce PWM je nutné vybrat podporované piny. Seznam těchto pinů pro jednotlivé desky si můžete prohlédnout zde.
Ukázkový kód obsahuje na svém začátku nastavení čísel propojovacích pinů a vytvoření proměnné, která udává maximální svítivost v celém programu (maximálně je možné nastavit 255). V podprogramu setup nastavíme nejprve všechny piny jako výstupní a poté zavoláme třikrát podprogram test pro jednotlivé barvy. Nekonečná smyčka loop obsahuje tři vnořené for smyčky, které prochází dohromady 5^3=125 kombinací barev, pokaždé s krátkou pauzou pro rozeznání jednotlivých barev. Pod touto smyčkou se ještě v komentáři nachází pro ukázku nastavení základních barev, kdy je vidět, že barvy se „míchají“ pomocí jejich kombinací v RGB spektru. Zmíněný podprogram test obsahuje jako vstup pin zvolené barvy na LED diodě. Na tomto pinu je poté pomocí první for smyčky postupně zvyšována intenzita s krokem 5 až na maximum. Po dosažení maxima se s druhou for smyčkou dostaneme zpět na intenzitu 0, tedy vypnutou LED diodu. Výsledkem je tedy efekt zapulzování dané barvy. Druhý podprogram nastavRGB obsahuje tři vstupní parametry – barvy. Na tyto barvy, respektive jejich piny, je po zavolání tohoto podprogramu nastavena intenzita předaná právě přes zmíněné vstupní parametry. Tím si zjednodušíme kód při nastavování různých barev z RGB spektra.
// RGB LED modul // nastavení vstupních pinů #define pinR 9 #define pinG 10 #define pinB 11 // proměnná obsahující maximální svítivost LED diod const int maxSvit = 100; void setup() { // nastavení pinů pro LED jako výstup pinMode(pinR, OUTPUT); pinMode(pinG, OUTPUT); pinMode(pinB, OUTPUT); // otestování všech barev pomocí podprogramu test test(pinR); delay(500); test(pinG); delay(500); test(pinB); delay(500); } void loop() { // pomocí tří smyček v sobě dojde k postupnému nastavení různých // kombinací barev z RGB spektra, vždy je maximální svítivost // rozdělena na 5 stupňů - celkem tedy 5^3 = 125 kombinací for (int red = 0 ; red < maxSvit; red += maxSvit/5) { for (int green = 0 ; green < maxSvit; green += maxSvit/5) { for (int blue = 0 ; blue < maxSvit; blue += maxSvit/5) { // nastavení barvy na RGB LED modulu podle // aktuálních proměnnýc ve smyčkách nastavRGB(red, green, blue); // krátká pauza mezi barvami delay(200); } } } /* // nastavení červené barvy nastavRGB(maxSvit, 0 , 0 ); // nastavení zelené barvy nastavRGB(0 , maxSvit, 0 ); // nastavení modré barvy nastavRGB(0 , 0 , maxSvit); // nastavení bílé barvy nastavRGB(maxSvit, maxSvit, maxSvit); */ } void test(int ledPin) { // nastavení intenzity na daný pin vzestupně od 0 do hodnoty maxSvit for (int intenzita = 0 ; intenzita <= maxSvit; intenzita += 5) { // řízení jasu pomocí PWM na daném pinu analogWrite(ledPin, intenzita); // krátké zpoždění pro lepší efekt delay(30); } // nastavení intenzity na daný pin sestupně od hodnoty maxSvit do 0 for (int intenzita = maxSvit ; intenzita >= 0; intenzita -= 5) { // řízení jasu pomocí PWM na daném pinu analogWrite(ledPin, intenzita); // krátké zpoždění pro lepší efekt delay(30); } } void nastavRGB(int cervena, int zelena, int modra) { // nastavení všech barev na zvolené intenzity analogWrite(pinR, cervena); analogWrite(pinG, zelena); analogWrite(pinB, modra); }
Po nahrání ukázkového kódu do Arduino desky s připojeným RGB LED modulem dostaneme například tento výsledek:
RGB SMD LED modul je zajímavou ukázkou, jak lze pomocí tří pinů Arduina jednoduše řídit RGB LED diodu a vytvářet různé barevné kombinace. Tento modul tedy může sloužit jak pro výukové účely pochopení RGB spektra barev, tak i například jako indikační LED dioda v různých zařízeních, kde ušetříme prostor, protože nahradíme více jednobarevných LED diod jednou RGB LED diodou. Jako poznámku bych rád uvedl, že v programu jsem pracoval s maximální intenzitou 100 z důvodu jak dostatečné svítivosti LED diod, tak i menšího namáhání, protože výstupní piny Arduina poskytují napětí 5V, ikdyž omezené také na 20mA. Pokud budete chtít použít tento RGB LED modul v zařízení, kde se předpokládá delší doba statického svícení, doporučuji přidat ke každé barvě dle uvedených hodnot napájecího napětí také omezovací sériový rezistor.
Seznam použitých komponent:
https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/1404-ky-009-5050-rgb-smd-led-modul-pro-arduino-a-dalsi-1474447748.html
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
e-Paper displeje už jsou dostupné i pro bastlení za rozumné ceny a pro jejich ovládání se hodí tento Driver.