Arduino Nano - Infrarot-Fernbedienung

Sie sind wahrscheinlich schon auf die Infrarotfernbedienung gestoßen, die auch IR-Fernbedienung genannt wird, wenn Sie zu Hause Geräte wie Fernseher und Klimaanlagen verwenden... Diese Anleitung zeigt Ihnen, wie Sie die Infrarot-Fernbedienung (IR-Fernbedienung) und einen Infrarotempfänger verwenden, um den Arduino Nano zu steuern. Im Detail werden wir lernen:

Infrarot-Controller - Infrarot-Empfänger - Arduino Nano

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×IR Remote Controller and Receiver Kit
1×CR2025 Batterie (für IR-Fernbedienung)
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Infrarot-Fernbedienung

Ein IR-Steuerungssystem hat zwei Komponenten: eine IR-Fernbedienung und einen IR-Empfänger.

  • Die Infrarot-Fernbedienung wird verwendet, um Befehle mittels Infrarotsignalen zu senden.
  • Der Infrarot-Empfänger empfängt und interpretiert diese Signale, um das Gerät zu steuern.

Ein IR-Kit besteht typischerweise aus den beiden oben genannten Komponenten: einer IR-Fernbedienung und einem IR-Empfänger.

Infrarot-Fernbedienung

Die Infrarot-Fernbedienung ist ein tragbares Gerät, das Infrarotsignale aussendet. Sie ist mit einem Tastenfeld ausgestattet, das mehrere Tasten enthält:

  • Jede Taste der Fernbedienung ist einer bestimmten Funktion oder einem Befehl zugeordnet.
  • Wenn eine Taste gedrückt wird, sendet die Fernbedienung ein unsichtbares Infrarotsignal.
  • Dieses Signal trägt einen eindeutigen Code oder ein Muster, das mit der gedrückten Taste verknüpft ist.
  • Diese Infrarotsignale gehören zum Infrarotspektrum und sind für das menschliche Auge unsichtbar.
Infrarot-Controller
image source: diyables.io

Infrarotempfänger

Das Infrarot-Empfängermodul ist ein Sensor, der die von der Fernbedienung ausgesendeten Infrarotsignale erkennt und empfängt.

Der Infrarotempfänger erkennt die eingehenden Infrarotsignale und wandelt sie in den Code (Befehl) um, der die gedrückte Taste der Fernbedienung repräsentiert.

Der IR-Empfänger kann ein Sensor oder ein Modul sein. Sie können die folgenden Optionen verwenden:

  • Nur Infrarot-Empfängermodul
  • Nur Infrarot-Empfängersensor
  • Infrarot-Empfängersensor + Adapter
Infrarot-Empfänger-Sensormodul
image source: diyables.io
IR-Empfänger-Sensoradapter
image source: diyables.io

IR-Empfänger-Pinbelegung

Das IR-Empfängermodul oder -Sensor hat drei Pins:

  • VCC-Pin: Verbinden Sie diesen Pin mit dem 3,3-V- oder 5-V-Pin des Arduino Nano oder einer externen Spannungsquelle.
  • GND-Pin: Verbinden Sie diesen Pin mit dem GND-Pin des Arduino Nano oder einer externen Spannungsquelle.
  • OUT (Ausgang) Pin: Dieser Pin ist der Ausgangspin des IR-Empfängermoduls. Mit einem digitalen Eingangspin des Arduino Nano verbunden.

Wie es funktioniert

Wenn ein Benutzer eine Taste an der Infrarot-Fernbedienung drückt, treten die folgenden Schritte auf:

  • Die Infrarot-Fernbedienung codiert den Befehl, der dem Knopf zugeordnet ist, in ein Infrarotsignal unter Verwendung eines bestimmten Protokolls.
  • Die Infrarot-Fernbedienung sendet das codierte Infrarotsignal aus.
  • Der Infrarotempfänger empfängt das codierte Infrarotsignal.
  • Der Infrarotempfänger decodiert das codierte Infrarotsignal und wandelt es zurück in den ursprünglichen Befehl.
  • Der Arduino Nano liest den vom Infrarotempfänger empfangenen Befehl.
  • Der Arduino Nano ordnet den empfangenen Befehl der entsprechenden Taste zu, die auf der Infrarot-Fernbedienung gedrückt wurde.

Diese Schritte erläutern den Prozess, wie der Tastendruck der IR-Fernbedienung durch den Arduino Nano in einen erkennbaren Befehl übersetzt wird.

Es mag kompliziert erscheinen, aber man muss sich keine Sorgen machen. Dank der DIYables_IRcontroller library wird es unglaublich einfach.

Verdrahtungsdiagramm

Verdrahtungsdiagramm zwischen Arduino Nano und IR-Empfängermodul

Arduino Nano Infrarot-Fernbedienung Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Schaltplan zwischen Arduino Nano und IR-Empfängersensor

Arduino Nano IR-Fernbedienung Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Verdrahtungsdiagramm zwischen Arduino Nano und IR-Empfänger-Sensor und Adapter

Bevor Sie den IR-Empfängersensor mit dem Arduino Nano verbinden, haben Sie die Möglichkeit, ihn an den Adapter anzuschließen. Dies ermöglicht eine einfachere Einrichtung und stellt eine ordnungsgemäße Verbindung zwischen dem IR-Empfängersensor und dem Arduino Nano sicher.

Sie können den IR-Empfängersensor auch an den Adapter anschließen, bevor Sie ihn an das Gerät anschließen.

Arduino Nano IR-Fernbedienungsempfänger-Adapter
image source: diyables.io

Wie man eine Infrarot-Fernbedienung programmiert

  • Die Bibliothek einbinden:
#include <DIYables_IRcontroller.h> // Bibliothek für IR-Empfänger
  • Deklariere ein Objekt DIYables_IRcontroller_17 oder DIYables_IRcontroller_21, das mit 17-Tasten- bzw. 21-Tasten-IR-Fernbedienungen korrespondiert:
DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200 ms // ODER DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200 ms
  • Initialisieren Sie den Infrarot-Controller.
irController.begin();
  • In der Schleife prüfen, ob eine Taste gedrückt wird oder nicht. Falls ja, lese die Taste aus.
Key17 key = irController.getKey(); // wenn ein 17-Tasten-IR-Controller verwendet wird // ODER Key21 key = irController.getKey(); // wenn ein 21-Tasten-IR-Controller verwendet wird
  • Beim Erkennen eines Tastendrucks können Sie für jede Taste spezifische Aktionen ausführen, die der jeweiligen Taste entsprechen.

Arduino Nano Quellcode

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 7 // The Arduino Nano pin connected to IR controller DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key17::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key17::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key17::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key17::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key17::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key17::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key17::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key17::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; case Key17::KEY_STAR: Serial.println("*"); // TODO: YOUR CONTROL break; case Key17::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key17::KEY_SHARP: Serial.println("#"); // TODO: YOUR CONTROL break; case Key17::KEY_UP: Serial.println("UP"); // TODO: YOUR CONTROL break; case Key17::KEY_DOWN: Serial.println("DOWN"); // TODO: YOUR CONTROL break; case Key17::KEY_LEFT: Serial.println("LEFT"); // TODO: YOUR CONTROL break; case Key17::KEY_RIGHT: Serial.println("RIGHT"); // TODO: YOUR CONTROL break; case Key17::KEY_OK : Serial.println("OK"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }
/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 7 // The Arduino Nano pin connected to IR controller DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key21 key = irController.getKey(); if (key != Key21::NONE) { switch (key) { case Key21::KEY_CH_MINUS: Serial.println("CH-"); // TODO: YOUR CONTROL break; case Key21::KEY_CH: Serial.println("CH"); // TODO: YOUR CONTROL break; case Key21::KEY_CH_PLUS: Serial.println("CH+"); // TODO: YOUR CONTROL break; case Key21::KEY_PREV: Serial.println("<<"); // TODO: YOUR CONTROL break; case Key21::KEY_NEXT: Serial.println(">>"); // TODO: YOUR CONTROL break; case Key21::KEY_PLAY_PAUSE: Serial.println(">||"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_MINUS: Serial.println("–"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_PLUS: Serial.println("+"); // TODO: YOUR CONTROL break; case Key21::KEY_EQ: Serial.println("EQ"); // TODO: YOUR CONTROL break; case Key21::KEY_100_PLUS: Serial.println("100+"); // TODO: YOUR CONTROL break; case Key21::KEY_200_PLUS: Serial.println("200+"); // TODO: YOUR CONTROL break; case Key21::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key21::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key21::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key21::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key21::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key21::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key21::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key21::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key21::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key21::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }

Schnelle Schritte

  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
  • Suchen Sie nach "DIYables_IRcontroller", dann finden Sie die DIYables_IRcontroller-Bibliothek von DIYables.
  • Klicken Sie auf die Installieren-Schaltfläche, um die DIYables_IRcontroller-Bibliothek zu installieren.
Arduino Nano DIYables_IRcontroller-Bibliothek
  • Sie werden aufgefordert, die Bibliotheksabhängigkeit zu installieren, wie im untenstehenden Bild:
Arduino Nano IRremote-Bibliothek
  • Klicken Sie auf die Schaltfläche Alle installieren, um die Abhängigkeit zu installieren
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano hochzuladen
  • Drücken Sie nacheinander die Tasten der Fernbedienung
  • Überprüfen Sie das Ergebnis im Serial Monitor
  • Hier ist das Ergebnis, das Sie erwarten können, wenn Sie die Tasten einer 17-Tasten-IR-Fernbedienung der Reihe nach drücken:
COM6
Send
1 2 3 4 5 6 7 8 9 * 0 # UP DOWN LEFT RIGHT OK
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie können jetzt Änderungen am Code vornehmen, um Geräte wie LEDs, Ventilatoren, Pumpen, Aktuatoren und mehr mit IR-Fernbedienungen zu steuern.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!