Arduino - Infrarot-Fernbedienung

Sie sind wahrscheinlich schon auf die Infrarot-Fernbedienung, auch bekannt als IR-Fernbedienung, gestoßen, während Sie Haushaltsgeräte wie Fernseher und Klimaanlagen verwenden. In diesem Tutorial lernen wir, wie man eine Infrarot-Fernbedienung (IR-Fernbedienung) und einen Infrarotempfänger verwendet, um Arduino zu steuern. Im Detail werden wir lernen:

Dann kannst du den Code so anpassen, dass LED, Lüfter, Pumpe, Aktuator... über eine IR-Fernbedienung gesteuert werden.

Infrarot-Controller - Infrarot-Empfänger - Arduino

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×IR-Kit (Fernbedienung und Empfänger)
1×CR2025 Batterie (für IR-Fernbedienung)
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
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 IR-Fernbedienung

Ein IR-Steuerungssystem umfasst zwei Komponenten:

  • Infrarot-Fernbedienung
  • Infrarot-Empfänger

Ein IR-Kit enthält in der Regel zwei der oben genannten Komponenten.

Infrarot-Fernbedienung

Die Infrarot-Fernbedienung ist ein handliches Gerät, das Infrarotsignale aussendet. Die Infrarot-Fernbedienung besteht aus einer Tastatur mit verschiedenen Tasten:

  • Jede Taste der Fernbedienung entspricht einer bestimmten Funktion oder einem Befehl.
  • Wenn eine Taste gedrückt wird, sendet die Fernbedienung ein Infrarotsignal aus, das einen einzigartigen Code oder ein Muster trägt, das mit der gedrückten Taste verbunden ist.
  • Diese Infrarotsignale sind für das menschliche Auge nicht sichtbar, da sie im Infrarotspektrum liegen.
Infrarot-Controller
image source: diyables.io

Infrarot-Empfänger

Das IR-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 auf der Fernbedienung gedrückte Taste darstellt.

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

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

Infrarotempfänger-Pinbelegung

Infrarot-Empfängermodul oder -Sensor hat drei Pins:

  • VCC-Pin: Verbinde diesen Pin mit dem 3,3-V- oder 5-V-Pin des Arduino oder einer externen Stromquelle.
  • GND-Pin: Verbinde diesen Pin mit dem GND-Pin des Arduino oder einer externen Stromquelle.
  • OUT (Output) Pin: Dieser Pin ist der Ausgangspin des IR-Empfängermoduls. Mit einem digitalen Eingangspin am Arduino verbunden.

Wie es funktioniert

Wenn der Benutzer eine Taste auf der IR-Fernbedienung drückt.

  • Die IR-Fernbedienung kodiert das dem Knopf entsprechende Kommando in das Infrarotsignal über ein spezifisches Protokoll
  • Die IR-Fernbedienung sendet das codierte Infrarotsignal aus
  • Der IR-Empfänger empfängt das codierte Infrarotsignal
  • Der IR-Empfänger decodierte das codierte Infrarotsignal in das Kommando
  • Der Arduino liest das Kommando vom IR-Empfänger
  • Der Arduino ordnet das Kommando der gedrückten Taste zu

Es scheint kompliziert zu sein, aber keine Sorge. Mit Hilfe der DIYables_IRcontroller-Bibliothek ist es ein Kinderspiel.

Verdrahtungsdiagramm

Verdrahtungsdiagramm zwischen Arduino und IR-Empfängermodul

Arduino IR-Fernbedienung Verdrahtungsdiagramm

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

Der echte Schaltplan

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

Schaltplan zwischen Arduino und IR-Empfängersensor

Arduino IR-Fernbedienung-Schaltplan

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

Der echte Schaltplan

Arduino Infrarot-Fernbedienungsempfänger-Sensor
image source: diyables.io

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

Sie können auch den IR-Empfängersensor an den Adapter anschließen, bevor Sie ihn mit dem Arduino verbinden.

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

Wie man eine IR-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 200ms // ODER DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // Entprellzeit beträgt 200ms
  • Initialisieren Sie den Infrarot-Controller.
irController.begin();
  • In der Schleife prüfen, ob eine Taste gedrückt wird oder nicht. Falls ja, die Taste abrufen.
Key17 key = irController.getKey(); // wenn Sie einen 17-Tasten-IR-Controller verwenden // ODER Key21 key = irController.getKey(); // wenn Sie einen 21-Tasten-IR-Controller verwenden
  • Sobald Sie eine Taste erkannt haben, können Sie je nach Taste spezifische Aktionen ausführen.

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 7 // The Arduino 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 Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 7 // The Arduino 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

  • Gehen Sie zum Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach "DIYables_IRcontroller", und finden Sie anschließend die DIYables_IRcontroller-Bibliothek von DIYables.
  • Klicken Sie auf die Installieren-Schaltfläche, um die DIYables_IRcontroller-Bibliothek zu installieren.
Arduino DIYables_IRcontroller-Bibliothek
  • Sie werden aufgefordert, die Bibliotheksabhängigkeit zu installieren, wie im untenstehenden Bild gezeigt:
Arduino 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 Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Drücken Sie nacheinander Tasten der Fernbedienung.
  • Sehen Sie das Ergebnis im Serial Monitor.
  • Unten ist das Ergebnis, wenn Sie nacheinander Tasten der 21-Tasten-IR-Fernbedienung drücken:
COM6
Send
CH- CH CH+ << >> >|| – + EQ 100+ 200+ 0 1 2 3 4 5 6 7 8 9
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Jetzt können Sie den Code anpassen, um LED, Ventilator, Pumpe, Aktuator... über 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!