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+ | |link_3IN1_kit| |
Sie können diese auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG | KAUF-LINK |
---|---|
:ref:`cpn_uno` | |link_Uno_R3_buy| |
:ref:`cpn_breadboard` | |link_breadboard_buy| |
:ref:`cpn_wires` | |link_wires_buy| |
:ref:`cpn_receiver` | - |
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
Note
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.