• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

Dieses Modul enthält eine Leuchtdiode, die Infrarotlicht aussendet. Infrarotlicht ist für das menschliche Auge unsichtbar, aber es wird häufig in vielen praktischen Anwendungen verwendet, wie z.B. bei Fernbedienungen oder in der Objekterkennung. Die Diode arbeitet mit einer Spannung von 1,1 V und einem Strom von 20 mA. Je nach Eingangsspannung ist es wichtig, Vorwiderstände zu verwenden, um die Leuchtdiode zu schützen und einen reibungslosen Betrieb zu gewährleisten. Diese Vorwiderstände stellen sicher, dass die richtige Menge an Strom durch die Diode fließt, wodurch sie effektiv und sicher genutzt werden kann. Das Modul eignet sich hervorragend für Projekte, die Infrarotlicht benötigen, und bietet eine zuverlässige und einfache Lösung für Ihre Infrarotanwendungen.

Technische Daten
Durchlassspannung (Vf) 1,1 V
Durchlassstrom (If) 20 mA
Emittierende Wellenlänge 940 nm (nicht sichtbares Licht)

Vorwiderstände:

Eingangsspannung Benötigter Vorwiderstand
3,3 V 120 Ω
5 V 220 Ω

Anschlussbelegung

für Fortgeschrittenere

Auf der Platine gibt es die Möglichkeit, den jeweils benötigten Widerstand direkt aufzulöten. Die Stelle zum Auflöten des Widerstandes befindet sich direkt über den Anschlusspins auf dem PCB.


Beim Auflöten des Widerstandes ändert sich die Anschlussbelegung wie folgt:

Arduino Sender
Pin 3 Signal
GND GND+Widerstand
- GND

für Anfänger

Arduino Sender
Pin 3 Signal
- GND+Widerstand
GND+Widerstand GND

Codebeispiel

Mit Hilfe der beiden Sensormodule KY-005 und KY-022 lässt sich ein System mit Infrarot-Fernbedienung und Infrarot-Empfänger aufbauen. Hierzu werden neben den beiden Modulen auch zwei Arduinos benötigt. Diese fungieren hierbei dann jeweils als Sender und als Empfänger der Signale.

Um das folgende Codebeispiel auf Ihren Arduino zu laden, empfehlen wir die Verwendung der Arduino IDE. In der IDE können Sie den passenden Port und das richtige Board für Ihr Gerät auswählen. Für das folgende Codebeispiel wird eine zusätzliche Library benötigt:

IRremote von Ken Shirriff | veröffentlicht unter der MIT Lizenz

Diese Bibliotheken können Sie bequem über den Bibliotheken-Manager der Arduino IDE hinzufügen.

Bei Infrarot-Sendesystemen gibt es verschiedene Protokolle, in denen die Daten versendet werden können. In dem folgenden Beispiel wird für das Versenden das NEC-Protokoll verwendet. Dokumentation

Bitte beachten Sie: Für die Ausführung des Codebeispiels ist eine zusätzliche Datei notwendig. Diese öffnet sich automatisch, sobald Sie den Beispielcode aus der IRremote-Bibliothek öffnen. Öffnen Sie daher zunächst den Beispielcode über den folgenden Weg: Datei > Beispiele > IRremote > SimpleSender. Nun können Sie den Beispielcode durch unser modifiziertes Beispiel ersetzen. Um den Code auf Ihren Arduino hochzuladen, klicken Sie einfach auf den Upload-Button.

/*
 * SimpleSender.cpp
 *
 * Demonstriert das Senden von IR-Codes im Standardformat mit Adresse und Befehl
 * Ein erweitertes Beispiel zum Senden finden Sie als SendDemo.
 *
 *  Copyright (C) 2020-2022  Armin Joachimsmeyer
 *  armin.joachimsmeyer@gmail.com
 *
 *  Diese Datei ist Teil von Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote.
 *
 *  MIT License
 */
#include <Arduino.h>

#if !defined(ARDUINO_ESP32C3_DEV) // Dies ist auf einen Fehler im RISC-V-Compiler zurückzuführen, der unbenutzte Funktionsabschnitte benötigt :-(.
// Deaktiviert statischen Empfängercode wie den ISR-Handler für den Empfangstimer und statische IRReceiver- und irparams-Daten. 
// Spart 450 Byte Programmspeicher und 269 Byte RAM, wenn die Empfangsfunktionen nicht benötigt werden.
#define DISABLE_CODE_FOR_RECEIVER 
#endif

/*
 * Dieses Include definiert die aktuellen Pin-Nummern für Pins wie IR_RECEIVE_PIN, IR_SEND_PIN für viele verschiedene Boards und Architekturen
 */
#include "PinDefinitionsAndMore.h"
#include <IRremote.hpp> // Einbindung der Bibliothek

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);

    Serial.begin(115200);
    while (!Serial)
        ; // Warten Sie darauf, dass Serial verfügbar wird. Wird für einige Kerne wegoptimiert.

    // Nur um zu wissen, welches Programm auf meinem Arduino läuft
    Serial.println(F("KY-005: Infrarot Sender Test"));
    Serial.print(F("Sende IR-Signale an Pin "));
    Serial.println(IR_SEND_PIN);

    /*
     * Die Einrichtung der IR-Bibliothek. Das war's schon!
     */
    // Beginnen Sie mit IR_SEND_PIN -der in PinDefinitionsAndMore.h definiert ist- als Sende-Pin und aktivieren Sie die Rückmelde-LED am Standard-Rückmelde-LED-Pin
    IrSender.begin();
    disableLEDFeedback(); // Rückmelde-LED am Standard-Rückmelde-LED-Pin deaktivieren
}

/*
 * Einrichten der zu sendenden Daten.
 * Bei den meisten Protokollen werden die Daten mit einer konstanten 8- (oder 16-Byte-) Adresse
 * und einem variablen 8-Bit-Befehl.
 * Es gibt Ausnahmen wie Sony und Denon, die eine 5-Bit-Adresse haben.
 */
uint8_t sCommand = 0x34;
uint8_t sRepeats = 0;

void loop() {
    /*
     * Aktuelle Sendewerte anzeigen
     */
    Serial.println();
    Serial.print(F("Jetzt wird gesendet: Adresse=0x00, Command=0x"));
    Serial.print(sCommand, HEX);
    Serial.print(F(", Wiederholungen="));
    Serial.print(sRepeats);
    Serial.println();

    Serial.println(F("Senden von Standard-NEC mit 8-Bit-Adresse"));
    Serial.flush();

    // Der Empfängerausgang für die erste Schleife muss sein: Protocol=NEC Address=0x102 Command=0x34 Raw-Data=0xCB340102 (32 bits)
    IrSender.sendNEC(0x00, sCommand, sRepeats);

    /*
     * Sendewerte inkrementieren
     */
    sCommand += 0x11;
    sRepeats++;
    // Clip wiederholt sich bei 4
    if (sRepeats > 4) {
        sRepeats = 4;
    }

    delay(1000);  // Verzögerung muss größer als 5 ms sein (RECORD_GAP_MICROS), sonst sieht der Empfänger es als ein langes Signal
}

Dieses Modul enthält eine Leuchtdiode, die Infrarotlicht aussendet. Infrarotlicht ist für das menschliche Auge unsichtbar, aber es wird häufig in vielen praktischen Anwendungen verwendet, wie z.B. bei Fernbedienungen oder in der Objekterkennung. Die Diode arbeitet mit einer Spannung von 1,1 V und einem Strom von 20 mA. Je nach Eingangsspannung ist es wichtig, Vorwiderstände zu verwenden, um die Leuchtdiode zu schützen und einen reibungslosen Betrieb zu gewährleisten. Diese Vorwiderstände stellen sicher, dass die richtige Menge an Strom durch die Diode fließt, wodurch sie effektiv und sicher genutzt werden kann. Das Modul eignet sich hervorragend für Projekte, die Infrarotlicht benötigen, und bietet eine zuverlässige und einfache Lösung für Ihre Infrarotanwendungen.

Technische Daten
Durchlassspannung (Vf) 1,1 V
Durchlassstrom (If) 20 mA
Emittierende Wellenlänge 940 nm (nicht sichtbares Licht)

Vorwiderstände:

Eingangsspannung Benötigter Vorwiderstand
3,3 V 120 Ω
5 V 220 Ω

Auf der Platine gibt es die Möglichkeit, den jeweils benötigten Widerstand direkt aufzulöten. Die Stelle zum Auflöten des Widerstandes befindet sich direkt über den Anschlusspins auf dem PCB.

Anschlussbelegung (ON/OFF-Beispiel)


Raspberry Pi Sensor
GPIO 15 [Pin 10] Signal
GND [Pin 6] GND
# -*- coding: iso-8859-1 -*-
# Benoetigte Module werden importiert
from gpiozero import LED
import time

# Initialisiere die LED am Pin 15
led = LED(15)

print("LED-Test [druecken Sie STRG+C, um den Test zu beenden]")

# Hauptprogrammschleife
try:
    while True:
        print("LED 4 Sekunden an")
        led.on()  # LED wird eingeschaltet
        time.sleep(4)  # Wartemodus fuer 4 Sekunden
        print("LED 2 Sekunden aus")
        led.off()  # LED wird ausgeschaltet
        time.sleep(2)  # Wartemodus fuer weitere zwei Sekunden, in denen die LED dann ausgeschaltet ist

# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
    led.close()  # Freigabe der Ressourcen

Anschlussbelegung (Fernbedienungs-Beispiel)

Raspberry Pi Empfänger
GPIO15 [Pin 10] Signal
3.3 V [Pin 1] +V
GND [Pin 6] GND
Raspberry Pi Sender
GPIO14 [Pin 8] Signal
GND [Pin 6] GND

Quelle der nun folgenden Schritte.

Öffnen Sie zunächst die config.txt-Datei mit Hilfe des folgenden Befehls:

sudo nano /boot/config.txt

Fügen Sie nun den folgenden Inhalt an das Ende der Datei an:

dtoverlay=gpio-ir,gpio_pin=15
dtoverlay=gpio-ir-tx,gpio_pin=14

Mit der Tastenkombination [STRG+O] können Sie die Datei speichern. Bestätigen Sie dies mit [Enter] und verlassen Sie den Editor mit der Tastenkombination [STRG+X]. Starten Sie Ihren Raspberry Pi nun mit dem folgenden Befehl neu:

sudo reboot

Installieren Sie nun das ir-keytable Modul:

sudo apt-get install ir-keytable -y

Mit dem folgenden Befehl können Sie die Geräte-Identifikation ermitteln. Dies ist notwendig, um den Empfänger im weiteren Verlauf ansprechen zu können:

sudo ir-keytable

Die erste Zeile der Ausgabe sollte etwa so aussehen:

Found /sys/class/rc/rc0/ (/dev/input/event0) with:

Hier kann abgelesen werden, dass wir unseren Empfänger über die Identifikation rc0 ansprechen können. Daher starten wir den Empfang nun über den folgenden Befehl:

ir-keytable -t -s rc0

Dieses Modul enthält eine Leuchtdiode, die Infrarotlicht aussendet. Infrarotlicht ist für das menschliche Auge unsichtbar, aber es wird häufig in vielen praktischen Anwendungen verwendet, wie z.B. bei Fernbedienungen oder in der Objekterkennung. Die Diode arbeitet mit einer Spannung von 1,1 V und einem Strom von 20 mA. Je nach Eingangsspannung ist es wichtig, Vorwiderstände zu verwenden, um die Leuchtdiode zu schützen und einen reibungslosen Betrieb zu gewährleisten. Diese Vorwiderstände stellen sicher, dass die richtige Menge an Strom durch die Diode fließt, wodurch sie effektiv und sicher genutzt werden kann. Das Modul eignet sich hervorragend für Projekte, die Infrarotlicht benötigen, und bietet eine zuverlässige und einfache Lösung für Ihre Infrarotanwendungen.

Technische Daten
Durchlassspannung (Vf) 1,1 V
Durchlassstrom (If) 20 mA
Emittierende Wellenlänge 940 nm (nicht sichtbares Licht)

Vorwiderstände:

Eingangsspannung Benötigter Vorwiderstand
3,3 V 120 Ω
5 V 220 Ω

Auf der Platine gibt es die Möglichkeit, den jeweils benötigten Widerstand direkt aufzulöten. Die Stelle zum Auflöten des Widerstandes befindet sich direkt über den Anschlusspins auf dem PCB.

Anschlussbelegung (ON/OFF-Beispiel)


Micro:Bit Sender
Pin 0 Signal
- +V
GND GND

Code-Beispiel (ON/OFF-Beispiel)

	
		input.onButtonPressed(Button.A, function () {
		    if (true) {
		        pins.digitalWritePin(DigitalPin.P0, 1)
		        basic.pause(1000)
		    } else {
		        pins.digitalWritePin(DigitalPin.P0, 0)
		    }
		})
		pins.setPull(DigitalPin.P5, PinPullMode.PullDown)
	

Beispielprogramm Download

microbit-KY-005.zip

Anschlussbelegung (Fernbedienungsbeispiel)

Micro:Bit Sender
Pin 0 Signal
- +V
GND GND
Micro:Bit Empfänger
Pin 1 Signal
3V +V
GND GND

Für das folgende Codebeispiel werden zwei zusätzliche Libraries benötigt:

pxt-makerbit-ir-transmitter von 1010Technologies | veröffentlicht unter der MIT License

pxt-makerbit-ir-receiver von 1010Technologies | veröffentlicht unter der MIT License

Code-Beispiel (Fernbedienungsbeispiel)

Diese Libraries müssen Sie vor der Benutzung des Codes erst zu Ihrer IDE hinzufügen.

Fügen Sie die Library zu Ihrer IDE hinzu, indem Sie auf "Erweiterungen" klicken und jeweils die folgenden URLs in das Suchfeld eingeben: https://github.com/1010Technologies/pxt-makerbit-ir-transmitter.git und https://github.com/1010Technologies/pxt-makerbit-ir-receiver.git. Bestätigen Sie die Suche jeweils mit Enter.

	
		makerbit.onIrDatagram(function () {
		    if (true) {
		        basic.showIcon(IconNames.SmallHeart)
		    } else {
		        basic.showIcon(IconNames.Heart)
		    }
		})
		makerbit.connectIrSenderLed(AnalogPin.P0)
		makerbit.connectIrReceiver(DigitalPin.P1, IrProtocol.NEC)
		basic.forever(function () {
		    makerbit.sendIrDatagram("0x00FF02FD")
		    basic.pause(500)
		})
	

Beispielprogramm Download

microbit-KY-005-und-022-Remote.zip

Dieses Modul enthält eine Leuchtdiode, die Infrarotlicht aussendet. Infrarotlicht ist für das menschliche Auge unsichtbar, aber es wird häufig in vielen praktischen Anwendungen verwendet, wie z.B. bei Fernbedienungen oder in der Objekterkennung. Die Diode arbeitet mit einer Spannung von 1,1 V und einem Strom von 20 mA. Je nach Eingangsspannung ist es wichtig, Vorwiderstände zu verwenden, um die Leuchtdiode zu schützen und einen reibungslosen Betrieb zu gewährleisten. Diese Vorwiderstände stellen sicher, dass die richtige Menge an Strom durch die Diode fließt, wodurch sie effektiv und sicher genutzt werden kann. Das Modul eignet sich hervorragend für Projekte, die Infrarotlicht benötigen, und bietet eine zuverlässige und einfache Lösung für Ihre Infrarotanwendungen.

Technische Daten
Durchlassspannung (Vf) 1,1 V
Durchlassstrom (If) 20 mA
Emittierende Wellenlänge 940 nm (nicht sichtbares Licht)

Vorwiderstände:

Eingangsspannung Benötigter Vorwiderstand
3,3 V 120 Ω
5 V 220 Ω

Anschlussbelegung


für Fortgeschrittenere

Auf der Platine gibt es die Möglichkeit, den jeweils benötigten Widerstand direkt aufzulöten. Die Stelle zum Auflöten des Widerstandes befindet sich direkt über den Anschlusspins auf dem PCB.


Beim Auflöten des Widerstandes ändert sich die Anschlussbelegung wie folgt:

Raspberry Pi Pico Sender
GPIO17 Signal
- GND+Widerstand
GND GND

für Anfänger

Raspberry Pi Pico Sender
GPIO17 Signal
- GND+Widerstand
GND+Widerstand GND

Code-Beispiel

Mit Hilfe der beiden Sensormodule KY-005 und KY-022 lässt sich ein System mit Infrarot-Fernbedienung und Infrarot-Empfänger aufbauen. Hier werden wir aber nur den Sender mit einem Pico verwenden. Dieser fungiert hierbei dann als Sender der Signale.

Um das folgende Codebeispiel auf Ihren Pico zu laden, empfehlen wir die Verwendung von der Thonny IDE. Sie müssen nur zunächst unter Run > Configure interpreter … > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) auswählen.

Es werden für das Codebeispiel die folgende Bibliothek verwendet:

micropython-ir von Peter Hinch | veröffentlicht unter der MIT Lizenz

Um diese Bibliothek zu verwenden, müssen Sie sich aus der obigen Bibliothek den Ordner ir_tx herunterladen und auf den Pico in einem Ordner namens lib (Sie müssen diesen ggf. erstellen) laden.

Bei Infrarot-Sendesystemen gibt es verschiedene Protokolle, in denen die Daten versendet werden können. In dem folgenden Beispiel werden für das Versenden verschiedene Protokolle verwendet. Dokumentation

Danach können Sie den untenstehenden Code nun in Ihre IDE kopieren und klicken Sie auf Run.

# Bibliotheken laden
from machine import Pin
from ir_tx.nec import NEC
from time import sleep

# Initialisierung vom Transmitter mit NEC-Protokoll an GPIO26
nec = NEC(Pin(17, Pin.OUT, value = 0))

# Variablen zum Versenden der Daten
address = 0x00
data = 0x34

print("KY-005 Infrarot Sender Test")

while True:
    # Sendewerte anzeigen
    print("Jetzt wird gesendet: Adresse=", hex(address),", Command=", hex(data))
    # Daten senden
    nec.transmit(address, data)
    # Sendewerte inkrementieren
    data += 0x11
    # eine Sekunde warten
    sleep(1)