5.11.2 IR-Empfänger¶
In diesem Projekt lernen Sie, wie Sie einen IR-Empfänger verwenden.
Ein Infrarot-Empfänger ist eine Komponente, die Infrarotsignale empfängt. Er kann Infrarotstrahlen eigenständig empfangen und Signale ausgeben, die mit dem TTL-Level kompatibel sind. Er ähnelt von der Größe her einem normal verpackten Transistor und eignet sich für alle Arten von Infrarot-Fernbedienungen und Infrarotübertragungen.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen. Hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
3 in 1 Starter Kit |
380+ |
Sie können diese auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
Schaltplan
Verkabelung
In diesem Beispiel verbinden wir den linken Pin des IR-Empfängers mit Pin 11, den mittleren Pin mit GND und den rechten Pin mit 5V.
Code
Bemerkung
Öffnen Sie die Datei
5.11.ir_receiver.ino
unter dem Pfad3in1-kit\basic_project\5.11.ir_receiver
.Oder kopieren Sie diesen Code in die Arduino IDE.
Hier wird die Bibliothek
IRremote
verwendet. Sie können sie über den Library Manager installieren.
Nachdem Sie die Codes auf das R3-Board hochgeladen haben, können Sie den aktuellen Wert der gedrückten Taste der IR-Fernbedienung auf dem Seriellen Monitor anzeigen lassen.
Wie funktioniert das?
Dieser Code ist für die Verwendung mit einer Infrarot (IR) Fernbedienung und der IRremote
Bibliothek entwickelt. Hier ist die Erklärung:
Einbindung von Bibliotheken: Dies beinhaltet die
IRremote
Bibliothek, welche Funktionen zur Arbeit mit IR-Fernbedienungen bereitstellt.#include <IRremote.h>
Definiert den Arduino-Pin, an den der Signal-Pin des IR-Sensors angeschlossen ist.
const int IR_RECEIVE_PIN = 11; // Pinnummer für den IR-Sensor definieren
Initialisiert die serielle Kommunikation mit einer Baudrate von 9600. Initialisiert den IR-Empfänger am angegebenen Pin (
IR_RECEIVE_PIN
) und aktiviert die LED-Rückmeldung (falls zutreffend).void setup() { Serial.begin(9600); // Serielle Kommunikation mit 9600 Baudrate starten IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // IR-Empfänger starten
Die Schleife läuft kontinuierlich, um eingehende IR-Fernbedienungssignale zu verarbeiten.
void loop() { if (IrReceiver.decode()) { String decodedValue = decodeKeyValue(IrReceiver.decodedIRData.command); if (decodedValue != "ERROR") { Serial.println(decodedValue); delay(100); } IrReceiver.resume(); // Enable receiving of the next value } }
Überprüft, ob ein IR-Signal empfangen und erfolgreich decodiert wurde.
Decodiert den IR-Befehl und speichert ihn in
decodedValue
mit einer benutzerdefinierten FunktiondecodeKeyValue()
.Überprüft, ob der decodierte Wert kein Fehler ist.
Gibt den decodierten IR-Wert auf dem seriellen Monitor aus.
Setzt den IR-Signalempfang für das nächste Signal fort.