Dnes si predstavíme možnosť ovládania výstupov Arduina prostredníctvom infračerveného (IR) vysielača - napríklad diaľkového ovládača k televízoru či klimatizácii. Diaľkový ovládač, ktorý som odtestoval v tomto experimente je univerzálny od firmy SILVERCREST, model SFB 10.1 A1 (v súčasnosti určitej aj vo vyšších revíziách B1, B2 ....). Ovládač je dostupný najčastejšie v reťazci LIDL, funguje na väčšinu televízorov, domácích kín, prehrávačov.
Na prijatie IR signálu môžeme využiť radu dostupných senzorov, napríklad modul KY-022.
Technické špecifikácie KY-022:
- Typ senzoru: IR prijímač
- Operačné napätie: 2.7 - 5.5V
- Spotreba: 0.4 - 1.5mA
- Prijímaci uhol: ± 45°
- Frekvencia: 38kHz
- Filter: 500lux
- Potencionálny dosah: 18m
- Typ prijímacej diódy: TL1838
- Podporované protokoly: NEC, RC5, RC6, JVC, SONY, Panasonic, AIWA RC-T501, WHYNTER a iné
Programová implementácia využíva najpoužívanejšiu knižnicu IRremote pre tento IR prijímač. Knižnica je navrhnutá iba pre AVR procesory, teda AtMega328P použitom v Arduine a pribuzných. Pre použitie s inými architektúrami, napríklad ESP32 / ESP8266 je nutné použiť IRremoteESP8266. Obe knižnice sú dostupné napríklad na Githube. Knižnice je možné využiť aj pre vysielanie IR signálu (s vhodným modulom). V kombinácii s prijímačom v jednom programe je nutné opätovne inicializovať stav načítavania - známy "bug". V programe pre Arduino som využil funkcie knižnice pre načítanie protokolu a následne aj vysielaného kódu z diaľkového ovládača.
Pri stlačení tlačidla hore na diaľkovom ovládači mi Arduino načítalo protokol NEC a hodnotu 820. Pri opakovanom stlačení hodnotu 20. Pri držaní tlačidla sa vysielala stále rovnaká hodnota. Pri samostatnom stlačení tlačidla zase opačná z týchto dvoch hodnôt. Programovo som následne jednoduchou podmienkou nastavil, že sa má na výstupný vývod zapísať logická 0, logická 1 - opačný stav ako aktuálny. Sériou podmienok, alebo prepínačom (switch) môžeme ku každému načítanému kódu priradiť akciu. V mojom prípade som ovládal relé, konkrétne 8 na doske 8-channel relay, ktorá je vybavená elektromagnetickými relé SRD-5VDC-SL-C, ktorými je možné spínať až 10A pri 230V, teda celkový výkon 2300W na relé.
Ovládanie môže byť využité na rôzne akcie, napríklad pre ovládanie vianočného osvetlenia na dome, ovládanie RGB farieb LED pásikov, režimov, relé, ovládanie motor DC/AC, otváranie dverí, brány. Doplnkové ovládanie meraní zo senzorov, ďalšej komunikácie s inými perifériami cez Ethernet, SPI, UART, RS232 a pod. Takéto vzdialené ovládanie môže nájsť miesto aj v automatizácii.
Programová implementácia: http://arduino.clanweb.eu/ir-rele.php
Schéma zapojenia: