Infrarot senden und empfangen, einfach erklärt!

IR-Übertragungsprotokoll

Das gängigste IR-Übertragungsprotokoll im Umgang mit dem Arduino ist das NEC-Protokoll. Es gibt noch viele weitere wie das Sony, RC5 und Matsushita, um nur einige zu nennen. Im Beispiel beschäftigen wir uns mit dem NEC-Protokoll das mit 38 kHz modulierte Licht die Bits 0 und 1 wie folgt darstellt.
Jedes Bit besteht aus einem 560 µs langen HIGH Puls von 38 kHz, gefolgt von einem LOW Puls. Die logische „1“ hat eine Gesamtübertragungszeit von 2,25 ms, während eine logische „0“ nur 1,125 ms dauert.
Die Dauer, die das Signal auf HIGH oder LOW bleibt, und die Anzahl der Bits, die für jeden Befehl gesendet werden, sind bei allen IR-Protokollen unterschiedlich. Beim NEC-Protokoll besteht die gesamte Nachricht normalerweise aus vier 8-Bit-Bytes.

IR Übertragungsprotokoll
Praktisches Beispiel mit IR Empfänger Module

Im ersten Beispiel werden wir versuchen, Infrarot-Daten mit einem IR Empfängermodul zu erfassen und mit einem Mikrocontroller auszuwerten. Dazu benötigen wir ein Empfängermodul oder einen IR Empfänger. Es wird eine Spannungsversorgung von 5 Volt und GND benötigt. Die Daten können wir über dem DAT Pin empfangen oder beim Empfänger Bauteil als OUT benannt. Wie immer, überprüft die Anschlüsse mit dem Datenblatt von eurem Bauteil, um ein falsches Anschliessen zu verhindern.
Für den Sketch benötigen wird die Library IRremote von Armin Joachimsmeyer. Nachdem wir den Sketch auf den Mikrocontroller geladen haben, können wir im Serial Monitor die empfangenen Daten von der Fernbedienung ablesen.

Protocol=NEC Address=0xDF00 Command=0x6 Raw-Data=0xF906DF00 32 bits LSB first

Hier wird die Adresse und das Kommando vom jeweiligen Taster aufgelistet und die Rohdaten des Tasters, der die Informationen gesammelt im HEX Format darstellt.
Ihr könnt eine euerer Fernbedienungen nehmen und für jeden Taster die entsprechenden Daten aufnehmen. Stellt sicher, dass ihr die Baudrate im Serial Monitor auf 115200 eingestellt habt.

				
					/*
Project:  IR Daten empfangen und die HEX Werte ausgeben
Author:   Thomas Edlinger for www.edistechlab.com
Date:     Created 03.04.2022 
Version:  V1.0
IDE:      Arduino IDE 1.8.19
*/ 

#include <IRremote.hpp>

const int ReceiverPin = 5; // Pin D1 beim Wemos D1 mini

void setup() {
  Serial.begin(115200);
  IrReceiver.begin(ReceiverPin, DISABLE_LED_FEEDBACK);
  printActiveIRProtocols(&Serial);
}

void loop() {
  if (IrReceiver.decode()) {
    IrReceiver.printIRResultShort(&Serial);
    Serial.println();
    IrReceiver.resume();
  }
}
				
			
LEDs schalten mit der IR-Fernbedienung

Für dieses Bespiel benötigen wir von der Fernbedienung die Daten von drei Taster. Mit einem Taster wird die rote LED und mit dem zweiten Taster die gelbe LED eingeschalten. Mit einem dritten Taster können beide LEDs ausgeschalten werden.
In der Tabelle habe ich von meiner Fernbedienung die Adresse und das Kommando aufgenommen und in den Sketch integriert. Hier werden die Daten von euerer Fernbedienung eingesetzt.

Senden von IR Daten mit dem Sender-Modul

Das Senden von Infrarot Daten funktioniert fast identisch wie das Empfangen. Das Modul hat dieselben Anschlüsse, VCC und GND für die Spannungsversorgung und den DAT Pin für die Datenübertragung. Ich verwende hier einen NodeMCU auf Pin D1 (GPIO 5)

IR Sender Modul
				
					/*
Project:  IR Daten senden
Author:   Thomas Edlinger for www.edistechlab.com
Date:     Created 03.04.2022 
Version:  V1.0
IDE:      Arduino IDE 1.8.19
*/ 

#include <IRremote.hpp>

const int SenderPin = 5; // Pin D1 beim NodeMCU ESP8266
uint32_t rawData = 0xF906DF00;
uint16_t Address = 0xDF00;
uint8_t Command = 0x47;
uint8_t Repeats = 0;

void setup() {
  Serial.begin(115200);
  pinMode(SenderPin, OUTPUT);
  IrSender.begin(SenderPin, DISABLE_LED_FEEDBACK);
}

void loop() {
  IrSender.sendNEC(Address, Command, Repeats);  
  delay(500);
  IrSender.sendNECRaw(rawData, Repeats);  
  delay(1000); // mindestens 5 ms Pause nach dem Senden
}
				
			

► IR – Sender und Empfänger

https://amzn.to/3JWtvg5 – 5x Infrarot Empfänger und IR Diode

https://amzn.to/3MjX7FP – 2x IR Sender und Empfänger Modul

►Arduino:

https://amzn.to/2WAlxEm – Arduino Starter Kit für Anfänger

https://amzn.to/3diucRV – Arduino Uno Rev 3

https://amzn.to/2JhJ3OR – Arduino Nano

https://amzn.to/3a9RqaF – Arduino Mega 2560

Relais:

* https://amzn.to/3a5yUjQ – 1 Stk. Relais 5V KY-019 Modul – 10A

* https://amzn.to/2xi4Kvq – 3 Stk. Relais 5V KY-019 Modul – 10A

* https://amzn.to/2U9ZqmL – 5 Stk. Relais 5V KY-019 Modul – 10A

Netzteile:

* https://amzn.to/3beWY3V – 2er-Pack USB Ladegerät 5V/2A

* https://amzn.to/398WzP9 – Raspberry Pi 4 Netzteil, USB-C, 5.1V, 3A

* https://amzn.to/2wsS8Bh  – HomeSpot Netzteil 3A/5V inkl. 1,5M Micro USB Kabel 

Jumper Wire:

* https://amzn.to/2WxKwIl Female to Female F2F 40 STK. je 20 cm

* https://amzn.to/2xeKb2V – Set 3 x 40 STK. je 20 cm M2M/ F2M / F2F

►Breadboard:

* https://amzn.to/2QQ7JSL – Breadboard Steckbrett mit 830 Kontakten

USB Kabel:

* https://amzn.to/2y01THNUSB A auf Micro USB  Kabel 0.5m

* https://amzn.to/2xkgqgQ – USB auf Mini USB Kabel 0.5m

* https://amzn.to/2QBxCp7 – USB A zu USB B Kabel 0.5m

Alle Links mit „*“ sind Amazon Affiliate Links. Ich bekomme bei einer Bestellung einen kleinen Teil vom Umsatz, ohne das euch dafür Mehrkosten entstehen.

Zum Video

★☆★ Wenn ihr den Kanal unterstützen wollt über ★☆★

oder über

Twint Spenden Code

Das könnte dich auch interessieren …