Minule jsme si v seriálu článků o desce TinyLab ukázali, jak se dají využít na ní přítomná tlačítka. Dnes si řekneme, co je to relé, jak se ovládá a k čemu ho můžeme využít.
Relé
Relé je součástka, která se používá k oddělení dvou obvodů tak, abychom mohli jedním obvodem spínat druhý. Jsou různé druhy relé. Asi nejčastěji se používají elektromagnetická relé, dále existují i SS relé, která jsou založená na polovodičích. My si dnes popíšeme relé elekromechanické.
Řídicí obvod přitom může pracovat na nám známých pěti voltech. Řízeným obvodem naopak mohou téci velké proudy a může mít velké napětí – například střídavých 230V, které máme v naší elektrické síti.
Pozor: Pomocí relé jde sice spínat 230V, ale toto napětí může při průchodu lidským tělem být i život ohrožující. Vyvarujte se proto prosím práci s napětím větším, než 24V (popřípadě 12V u střídavého), pokud přesně nevíte, co děláte.
Napětí/proudy řídicího a řízeného obvodu většinou najdeme na pouzdru součástky. Níže vidíte relé, které najdeme na desce TinyLab a jeho parametry.
Z potisku obalu jsme se tedy dozvěděli, že relé na desce je schopné spínat:
- střídavý proud 7A, 240V
- střídavý proud 10A, 125V
- stejnosměrný proud 10A, 28V
Spínaný obvod pracuje na 5V a je stejnosměrný.
Jak relé funguje
Elektromechanické relé pracuje na jednoduchém principu. V řídicím obvodu najdeme elektromagnet, který svým polem přitahuje takzvanou kotvu. To je pohyblivý plíšek, který spíná a rozpíná řízený obvod. Na obrázku níže je symbolicky znázorněná vnitřní struktura relé.
Když k pinům COIL TERMINALS relé z obrázku připojíme napájení, přitáhne elektromagnet pohyblivou kotvu (ARMATURE). Řízený obvod může být přopojený přes piny COMMON TERMINAL a NORMALLY OPEN terminal. Takový obvod je sepnutý v případě, když cívkou protéká proud. Pokud bychom místo NORMALLY OPEN TERMINAL použili pin NORMALLY CLOSED TERMINAL, dojde aktivací elektromagnetu k rozepnutí obvodu.
Elektromagnetických relé existují různé typy, které dělíme podle toho, jak jsou uvnitř uspořádaná, kolik vývodů mají a kolik oddělených obvodů mohou nejednou spínat. Více informací najdete na Wikipedii. Na TinyLab najdeme relé, které odpovídá tomu na obrázku výše – má jeden „vstupní“ pin, které je možné pomocí aktivace relé připojovat ke dvěma výstupním pinům
Připojení k Arduinu
Takový elektromagnet se nezdá, ale k jeho sepnutí mohou být potřeba značné proudy, které mohou poškodit pin. Proto relé nikdy nepřipojujeme k Arduinu přímo, ale využijeme nějakou součástku, která je schopná spínat velké proudy. Může to být tranzistor, nebo jiná součáska (ULN2003). Další možností je využít připravený modul pro Arduino, ke kterému stačí připojit +5V, GND a dalším pinem můžeme relé přímo spínat.
Na desce TinyLab naštěstí nemusíme nic řešit, protože vše máme připravené. Relé ovládáme pomocí pinu A4 (který používáme stejně, jako digitální). Zápis 1 na tento pin relé sepne, 0 ho rozepne.
Příklad
Představte si, že chcete pomocí relé spínat například obyčejný LED pásek, který většinou pracuje na 12V. Takové napětí Arduino dodat nezvládne, takže budeme muset použít nějakou vhodnou součástku – jednou z nich může být například relé. Na obrázku níže vidíme jedno z možných zapojení. Máme zde napájení, k jehož zemi je připojen minus pin LED pásku. Plus pin LED pásku je připojený k prostřednímu terminálu relé. Horní terminál je pak připojený na plusový pin napájení, kde je napětí 12V. K napájení slouží zdroj s nastavitelným napětím (polohu ovladače pro 12V jsem zjistil pomocí voltmetru). Můžete použít jakýkoliv jiný zdroj, který je dostačující k použitému pásku.
K ovládání využijeme tlačítka, která jsme si představili minule. Použijeme dvě tlačítka – jedno pro spínání, druhé pro vypínání LED pásku. Použijeme tlačítka připojená na piny 8 a 9. Relé je na TinyLabu připojené na pinu A4.
Musíme si dát pozor na dvě věci
- nesmíme zapomenout zapnout spínače u použitých pinů
- na TinyLabu jsou tlačítka 8 a 9 zapojená tak, že v nestisknutém stavu vrací funkce digitalRead(pin) hodnotu 1, při stisku 0. Hodnotu z digitalRead tedy znegujeme.
Kód bude tedy vypadat následovně:
byte tl_zap = 8; byte tl_vyp = 9; byte rele = A4; void setup() { pinMode(tl_vyp, INPUT); pinMode(tl_zap, INPUT); pinMode(rele, OUTPUT); Serial.begin(115200); while(Serial); } void loop() { byte st_tl_vyp = digitalRead(tl_vyp); byte st_tl_zap = digitalRead(tl_zap); if(!st_tl_vyp) { digitalWrite(rele, LOW); } else if(!st_tl_zap) { digitalWrite(rele, HIGH); } }
To je pro dnešek vše. Další komponentu z desky TinyLab si představíme příště.