- Arbeitserklärung:
- Dekodieren von IR-Fernbedienungssignalen mit Arduino:
- Schaltungsbeschreibung:
- Code Beschreibung:
Zuvor haben wir viele Arten von Hausautomationen mit verschiedenen Technologien wie DTMF-basierte Hausautomation, PC-gesteuerte Hausautomation mit Arduino und Bluetooth-gesteuerte Hausautomation behandelt. In diesem Projekt verwenden wir IR-basierte drahtlose Kommunikation zur Steuerung von Haushaltsgeräten. In diesem Projekt wird Arduino zur Steuerung des gesamten Prozesses verwendet. Wir senden einige Befehle an das Steuerungssystem, indem wir eine IR-TV / DVD / MP3-Fernbedienung zur Steuerung von AC-Haushaltsgeräten verwenden. Nach dem Empfang des Signals von der IR-Fernbedienung sendet Arduino ein entsprechendes Signal an Relais, die für das Ein- oder Ausschalten der Haushaltsgeräte über einen Relaistreiber verantwortlich sind.
Arbeitserklärung:
Die Arbeitsweise dieses Projekts ist leicht verständlich. Wenn wir eine Taste der IR-Fernbedienung drücken, sendet die Fernbedienung einen Code in Form einer Folge von codierten Impulsen mit einer Modulationsfrequenz von 38 kHz. Diese Impulse werden vom TSOP1738- Sensor empfangen und von Arduino gelesen, und dann decodiert Arduino die empfangene Impulsfolge in einen Hex-Wert und vergleicht diesen decodierten Wert mit dem vordefinierten Hex-Wert der gedrückten Taste. Wenn eine Übereinstimmung auftritt, führt Arduino eine relative Operation durch und das entsprechende Ergebnis wird auch auf dem 16x2-LCD mit den entsprechenden Befehlen angezeigt. Hier in diesem Projekt haben wir 3 Glühbirnen in verschiedenen Farben zur Demonstration verwendet, die auf Lüfter, Licht und Fernseher hinweisen.
Es gibt viele Arten von IR-Fernbedienungen, die für verschiedene Geräte verfügbar sind. Die meisten von ihnen arbeiten jedoch mit einem Frequenzsignal von etwa 38 kHz. Hier in diesem Projekt steuern wir Haushaltsgeräte mit einer IR-TV-Fernbedienung. Zur Erkennung des IR-Fernsignals verwenden wir den IR-Empfänger TSOP1738. Dieser TSOP1738-Sensor kann ein 38-kHz-Frequenzsignal erfassen. Die Funktionsweise der IR-Fernbedienung und des TSOP1738 kann in diesem Artikel ausführlich behandelt werden: IR-Sender und -Empfänger
Komponenten:
- Arduino UNO
- TSOP1738
- IR-TV / DVD-Fernbedienung
- ULN2003
- Relais 5 Volt
- Glühbirne mit Halter
- Kabel anschließen
- Brotbrett
- 16x2 LCD
- Energieversorgung
- PVT
- IC 7805
Hier in diesem Projekt haben wir die 7-, 8- und 9-Zifferntasten der IR-Fernbedienung zur Steuerung von Lüfter, Licht und Fernseher verwendet. Die EIN / AUS-Taste (Ein- / Aus-Taste) dient zum gleichzeitigen Ein- und Ausschalten aller Geräte.
Hier haben wir die Umschaltmethode zum Ein- und Ausschalten des einzelnen Haushaltsgeräts verwendet. Methode umschalten ist nichts anderes als zu bekommen, ob die Taste gerade einmal oder ungerade oft gedrückt wird. Dies wird festgestellt, indem die Erinnerung nach dem Teilen durch 2 (i% 2) abgerufen wird. Wenn eine Erinnerung vorliegt, wird das Gerät eingeschaltet und wenn die Erinnerung 0 ist, wird sie ausgeschaltet. Angenommen, Taste 7 wird auf der Fernbedienung gedrückt, und die Fernbedienung sendet über den TSOP-IR-Empfänger ein Signal an Arduino. Dann decodiert Arduino es und speichert den decodierten Wert in der Ergebnisvariablen. Jetzt hat die Ergebnisvariable den Hex-Wert 0x1FE00FF. Nachdem sie mit dem vordefinierten Hex-Wert von Schlüssel 7 abgeglichen wurde (siehe Abbildung oben), schaltet Arduino den Lüfter ein. Wenn wir nun dieselbe Taste (Taste 7) erneut drücken, sendet IR denselben Code. Arduino erhält denselben Code und stimmt mit demselben Code wie zuvor überein, aber diesmal wurde der Lüfter ausgeschaltet, weil das Bit umgeschaltet wurde (i% 2).
Dekodieren von IR-Fernbedienungssignalen mit Arduino:
Hier ist eine Liste eines ferndecodierten DVD-NEC-Ausgangscodes:
Wenn Sie den decodierten Ausgang Ihrer IR-Fernbedienung nicht kennen, können Sie ihn leicht finden. Führen Sie einfach die folgenden Schritte aus:
- Laden Sie die IR-Remote-Bibliothek hier herunter:
- Entpacken Sie es und legen Sie es in Ihrem Arduino-Ordner "Libraries" ab. Benennen Sie dann den extrahierten Ordner in IRremote um.
- Führen Sie das folgende Programm von Ihrem Arduino aus und öffnen Sie das Fenster Serial Monitor in der Arduino IDE. Drücken Sie nun eine beliebige IR-Fernbedienungstaste und sehen Sie den entsprechenden decodierten Hex-Ausgang im Fenster Serial Monitor.
* IRremote: IRrecvDemo - demonstriert den Empfang von IR-Codes mit IRrecv * Ein IR-Detektor / Demodulator muss an den Eingang RECV_PIN angeschlossen werden. * Version 0.1 Juli 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com * / #include
Das obige Programm stammt aus dem Ordner "examples" der IRremote-Bibliothek. Weitere Beispiele finden Sie unter Verwendung der IR-Fernbedienung. So haben wir den IR-Remote-Ausgang dekodiert.
Schaltungsbeschreibung:
Der Anschluss dieser Schaltung ist sehr einfach. Hier wird eine Flüssigkristallanzeige zur Anzeige des Status von Haushaltsgeräten verwendet, die im 4-Bit-Modus direkt mit Arduino verbunden ist. Die Datenpins des LCD, nämlich RS, EN, D4, D5, D6, D7, sind mit dem digitalen Arduino-Pin Nr. 6, 7, 8, 9, 10, 11 verbunden. Der Ausgangspin des TSOP1738 ist direkt mit dem digitalen Pin Nr. 14 (A) verbunden) von Arduino. Der Vcc-Pin ist mit einem +5 Volt- und einem GND-Pin verbunden, die an der Erdungsklemme des Stromkreises angeschlossen sind. Ein Relaistreiber, nämlich ULN2003, wird auch zum Ansteuern von Relais verwendet. 5-Volt-SPDT-3-Relais dienen zur Steuerung von LICHT, LÜFTER und Fernseher. Die Relais sind über den Relaistreiber ULN2003 mit dem Arduino-Pin Nr. 3, 4 und 5 verbunden, um LICHT, LÜFTER bzw. TV zu steuern.
Code Beschreibung:
Im Programmierteil dieses Projekts Zunächst enthalten wir in der Programmierung eine Bibliothek für IR-Fernbedienungen, die bei Google leicht verfügbar ist. Und Pin definieren und Variablen deklarieren.
#einschließen
Fügen Sie dann einen Header für die Flüssigkristallanzeige hinzu, und definieren Sie dann Daten und Steuerstifte für LCD- und Haushaltsgeräte.
#einschließen
Danach müssen wir das LCD initialisieren und die Richtung des Pins angeben, der für Lüfter, Licht und Fernseher verwendet wird.
void setup () {Serial.begin (9600); lcd.begin (16,2); PinMode (Lüfter, AUSGANG); pinMode (Licht, AUSGANG); PinMode (TV, OUTPUT);
Wie bereits erläutert, wird der folgende Teil des Codes verwendet, um den empfangenen Hex-Wert mit dem bereits definierten Hex-Code dieser Schaltfläche zu vergleichen. Wenn es übereinstimmt, wird eine relative Operation ausgeführt, indem geeignete Funktionen verwendet werden, die im Code angegeben sind.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); Verzögerung (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);