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

nevelinkjejellemzéseproblémái
Arduino-IRremotehttps://github.com/z3t0/Arduino-IRremote/tree/master/examplesA 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-Monitorhttps://github.com/dmworking247/A1100-with-PV-Energy-MonitorKommunikáció az Elster A1100 mérőórával
IRLremote 2.0.0https://github.com/NicoHood/IRLremote"Lightweight" távirányító olvasása
ESP8266-IR-Remote-Examplehttps://github.com/witnessmenow/ESP8266-IR-Remote-ExampleESP8266 é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:

IR vezetékezés

KY-005 38KHz-es IR adómodul

Azonos az ST1087 modullal.

  • Üzemi feszültség: 2.7 ~ 5.5V
  • Frekvencia: 37.9KHz
  • Hatótávolság: kb. 18m

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
}
}