.. note::
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
**Warum beitreten?**
- **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
- **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
- **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
- **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
- **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei!
.. _ar_receive:
2.20 IR-Empfängermodul
=========================
Überblick
-------------
In dieser Lektion lernen Sie, das IR-Empfängermodul zu verwenden. Der IR-Empfänger ist eine Komponente mit Fotozelle, die auf den Empfang von Infrarotlicht abgestimmt ist. Es wird fast immer zur Fernbedienungserkennung verwendet - jeder Fernseher und DVD-Player hat eine davon an der Vorderseite, um das IR-Signal vom Clicker zu empfangen. In der Fernbedienung befindet sich eine passende IR-LED, die IR-Impulse aussendet, um dem Fernseher mitzuteilen, dass er ein- oder ausschalten oder den Kanal wechseln soll.
Erforderliche Komponenten
-----------------------------
.. image:: img/Part_two_20.png
* :ref:`cpn_mega2560`
* :ref:`cpn_wires`
* :ref:`cpn_receive`
Schematische Darstellung
---------------------------
.. image:: img/image182.png
:align: center
Fritzing-Schaltung
---------------------
In diesem Beispiel verbinden wir den linken Pin (-) des IR-Empfängermoduls mit GND, den mittleren Pin mit 5 V und den rechten Pin (S) mit Pin 11.
.. image:: img/image183.png
:align: center
Code
----------
.. note::
* Sie können die Datei ``2.20_irReceiver.ino`` unter dem Pfad ``sunfounder_vincent_kit_for_arduino\code\2.20_irReceiver`` direkt öffnen.
* Oder kopieren Sie diesen Code in Arduino IDE.
* Die Bibliothek ``IRremote`` wird hier verwendet. Sie können sie über den Bibliotheksmanager installieren.
.. image:: img/lib_irremote.png
:align: center
.. raw:: html
Nach dem Hochladen der Codes auf die Mega2560-Platine können Sie sehen, dass der aktuelle Wert der gedrückten Taste der IR-Fernbedienung auf dem seriellen Monitor angezeigt wird.
Code-Analyse
---------------------
Dieser Code ist dafür ausgelegt, mit einer Infrarot (IR) Fernbedienung unter Verwendung der ``IRremote`` Bibliothek zu arbeiten. Hier die Erklärung:
#. Bibliotheken einbinden: Dies beinhaltet die IRremote Bibliothek, welche Funktionen für die Arbeit mit IR Fernbedienungen bereitstellt.
.. code-block:: arduino
#include
#. Definiert den Arduino-Pin, an den der Signalpin des IR-Sensors angeschlossen ist, und deklariert eine Variable, um den zuletzt decodierten IR-Wert zu speichern.
.. code-block:: arduino
const int IR_RECEIVE_PIN = 11; // Define the pin number for the IR Sensor
String lastDecodedValue = ""; // Variable to store the last decoded value
#. Initialisiert die serielle Kommunikation mit einer Baudrate von 9600. Startet den IR-Empfänger am angegebenen Pin (``IR_RECEIVE_PIN``) und aktiviert die LED-Rückmeldung (falls zutreffend).
.. code-block:: arduino
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud rate
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the IR receiver
}
#. Die Schleife wird kontinuierlich ausgeführt, um eingehende IR-Fernbedienungssignale zu verarbeiten.
.. code-block:: arduino
void loop() {
if (IrReceiver.decode()) {
String decodedValue = decodeKeyValue(IrReceiver.decodedIRD
ata.command);
if (decodedValue != "ERROR" && decodedValue != lastDecodedValue) {
Serial.println(decodedValue);
lastDecodedValue = decodedValue; // Update the last decoded value
}
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`` unter Verwendung der benutzerdefinierten Funktion ``decodeKeyValue()``.
* Überprüft, ob der decodierte Wert kein Fehler ist und sich von dem zuletzt decodierten Wert unterscheidet.
* Gibt den decodierten IR-Wert auf dem seriellen Monitor aus.
* Aktualisiert ``lastDecodedValue`` mit dem neu decodierten Wert.
* Setzt den IR-Signalempfang für das nächste Signal fort.
Phänomen Bild
------------------------
.. image:: img/image184.jpeg
:align: center