Arduino infravörös (IR) átvitel
Az infravörös átvitelről egy áttekintés a Kommunikáció fejezetben, az IR-nél található.
További infravörös (IR) funkciók:
Szoftver
Az Arduino-hoz a Github-on található könyvtárak
neve | linkje | jellemzése | problémái |
---|---|---|---|
Arduino-IRremote | https://github.com/z3t0/Arduino-IRremote/tree/master/examples | A legkünönfélébb távírányítók kódolása is megtalálható itt. | A Neopixels-el (aka WS2811/WS2812/WS2812B) nem tud együttműködni (zavarják egymást) |
A1100-with-PV-Energy-Monitor | https://github.com/dmworking247/A1100-with-PV-Energy-Monitor | Kommunikáció az Elster A1100 mérőórával | |
IRLremote 2.0.0 | https://github.com/NicoHood/IRLremote | Lightweight távirányító olvasása | |
ESP8266-IR-Remote-Example | https://github.com/witnessmenow/ESP8266-IR-Remote-Example | ESP8266 és az IR kommunikáció |
Vezetékezés
Leginkább a szoftver útmutatásai szerint érdemes az IR-t huzalozni, az UNO esetén a LED kimenetre jellemzően a 3.pin-t szokták ajánlani:
KY-005 38KHz-es IR adómodul
HX1838 NEC IR távirányító
A HX1838 vagy más néven a VS1838 a NEC IR protokollal forgalmazó távírányító. Átviteli jellemzői megegyeznek a KY-005-tel. Fogadóegységként itt is alkalmazható a KY-022.
Példaprogram
Két példaprogram a HX1838-hoz: https://gist.github.com/ryanamaral/34726743c4adbf0002d5
Az IRremote könyvtár innen telepíthető: https://github.com/z3t0/Arduino-IRremote
KY-022 38KHz-es IR vevőmodul
Azonos az ST1089 modullal.
A KY-005 és KY-022 modulok közötti adatátvitel csak akkor valósítható meg, ha a környezeti megvilágítás < 500 lux.
A modul az IR1838 átviteli elvet adoptálja.
- Üzemi feszültség: 2.7 ~ 5.5V
- Frekvencia: 37.9KHz
- Hatótávolság: kb. 18m
Példaprogram
Az IRremote könyvtár innen telepíthető: https://github.com/z3t0/Arduino-IRremote
# Include <IRremote.h> int RECV_PIN = 11; // define input pin on Arduino IRrecv irrecv (RECV_PIN); decode_results results; void setup () { Serial.begin (9600); irrecv.enableIRIn (); // Start the receiver } void loop () { if (irrecv.decode (& results)) { Serial.println (results.value, HEX); irrecv.resume (); // Receive the next value } }