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
}
				
			

Zum Video

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

oder über

Twint Spenden Code

Letzte Aktualisierung am 19.04.2024 / Affiliate Links / Bilder von der Amazon Product Advertising API