Inhaltsverzeichnis:

IR-Protokoll der Fernbedienungen der Klimaanlage verstehen - Gunook
IR-Protokoll der Fernbedienungen der Klimaanlage verstehen - Gunook

Video: IR-Protokoll der Fernbedienungen der Klimaanlage verstehen - Gunook

Video: IR-Protokoll der Fernbedienungen der Klimaanlage verstehen - Gunook
Video: IR Fernbedienung Code AUSLESEN? | Void Methode erstellen | millis() erklärt ARDUINO TUTORIAL DEUTSCH 2024, Juli
Anonim
Verständnis des IR-Protokolls der Fernbedienungen von Klimaanlagen
Verständnis des IR-Protokolls der Fernbedienungen von Klimaanlagen

Ich lerne seit einiger Zeit über IR-Protokolle. So senden und empfangen Sie IR-Signale. An dieser Stelle bleibt nur noch das IR-Protokoll der AC-Fernbedienungen.

Im Gegensatz zu herkömmlichen Fernbedienungen fast aller elektronischen Geräte (z. B. eines Fernsehers), bei denen nur die Informationen einer Taste gleichzeitig gesendet werden, werden bei Wechselstrom-Fernbedienungen alle Parameter codiert und gleichzeitig gesendet. Daher kann es ein wenig schwierig sein, das Signal von einem Mikrocontroller zu decodieren.

In diesem anweisbaren werde ich erklären, wie wir IR-Protokolle jeder AC-Fernbedienung leicht decodieren können. Ich werde meine HID-IR-TASTATUR verwenden, um die IR-Signale zu lesen und zu decodieren, indem ich ein neues Programm schreibe. Sie können jedoch fast jeden Ihnen bekannten Mikrocontroller verwenden, solange er externe Interrupts in Verbindung mit einem TSOP-IR-Demodulator unterstützt.

Schritt 1: Erforderliches Werkzeug

Lötstation. (zB. DIESE)

Sie können zwar billigere Bügeleisen verwenden, aber eine Lötstation von guter Qualität wird empfohlen, wenn Sie sich für Elektronik interessieren.

Pickit 2. (zB. DIES)

Sie können auch einen PICKIT 3 verwenden, müssen dann jedoch einen separaten USB-zu-UART-Konverter verwenden, um die Ausgabe vom Mikrocontroller zu lesen.

Ein Oszilloskop

Nun, ich habe es nicht. aber wenn Sie einen haben, wird Ihr Leben viel einfacher. Kaufen Sie auf jeden Fall einen, wenn Sie sich einen leisten können.

Ein Computer

Nun.. Duh

Schritt 2: Erforderliche Komponenten

  • PIC18F25J50 (zB HIER)
  • TSOP IR-Empfänger. (zB. HIER)
  • LM1117 3.3v Regler. (zB HIER)
  • 2x220nf Kondensatoren.
  • 470 Ohm Widerstand.
  • 10k Ohm Widerstand.

Dies sind die Komponenten, die für mein HID-IR-Tastaturprojekt erforderlich sind. Wenn Sie ein anderes Bildentwicklungsboard oder ein Arduino haben, benötigen Sie nur das TSOP IR-Decodermodul.

Eine AC-Fernbedienung

Die Fernbedienung, die entschlüsselt werden muss. Ich werde die Fernbedienung meines Videocon AC verwenden. Diese hat kein Display, funktioniert aber ähnlich wie andere Fernbedienungen mit Display.

Schritt 3: So funktioniert es (IR-Protokoll)

Wie es funktioniert (IR-Protokoll)
Wie es funktioniert (IR-Protokoll)

Bevor wir fortfahren, wollen wir einige Grundlagen verstehen.

IR-Fernbedienungen verwenden eine IR-LED, um das Signal von der Fernbedienung an den Empfänger zu übertragen, indem die LED schnell ein- und ausgeschaltet wird. Aber auch viele andere Lichtquellen erzeugen IR-Licht. Um unser Signal besonders zu machen, wird ein PWM-Signal mit einer bestimmten Frequenz verwendet.

Die in fast allen IR-Fernbedienungen verwendeten Frequenzen sind 30 kHz, 33 kHz, 36 kHz, 38 kHz, 40 kHz und 56 kHz.

Die gängigsten sind jedoch 38 kHz und 40 kHz.

Das TSOP-Modul demoduliert das Trägersignal (zB 38 kHz) auf eine geeignetere TTL-Logik von GND und VCC.

Die Dauer von HIGH der LOW-Logik bezeichnet Bit '1' oder '0'. Die Dauer variiert je nach Remote-Protokoll. (z. B. NEC)

Um das IR-Protokoll im Detail zu verstehen, können Sie sich auf DIESES Dokument beziehen.

Schritt 4: Die Fernbedienung

Die Fernbedienung
Die Fernbedienung

Die Fernbedienung, die ich verwende, gehört zu einer ziemlich alten Klimaanlage in meinem Zimmer. Es hat also kein schickes Display, aber es funktioniert so ziemlich wie jede AC-Fernbedienung mit Display.

Wir können die folgenden Einstellungen mit der Fernbedienung ändern.

  • Einschalten / Ausschalten
  • Schlafmodus ein/aus
  • Turbo-Modus ein/aus
  • Schwingen ein/aus
  • Lüftergeschwindigkeit (Niedrig, Mittel, Hoch)
  • Modusauswahl (Kühlen, Trocknen, Ventilator)
  • Temperatur (von 16 bis 30 Grad Celsius)

Schritt 5: Erfassen von RAW-Samples

Aufnehmen von RAW-Samples
Aufnehmen von RAW-Samples
Aufnehmen von RAW-Samples
Aufnehmen von RAW-Samples

Im Bild sehen Sie die RAW-Samples, die vom TSOP-IR-Empfänger ausgespuckt werden. die Zahlen bezeichnen die Dauer des Bursts und das Vorzeichen +/- bezeichnet die MARK und SPACE des Signals.

hier bezeichnet 1 Einheit 12us (Mikrosekunden).

Ein Burst von 80 bedeutet also 960us und so weiter.

Der folgende Codeabschnitt erfasst die Daten und gibt sie an den seriellen Monitor des pickit2 aus. (Die IDE ist MikroC PRO für PIC)

Aus irgendeinem Grund vermasselt der Instructable-Editor das Code-Tag. Also, ich habe gerade den Screenshot des Codes angehängt, siehe das zweite Bild dieses Schrittes.

Ich hätte den gesamten Projektordner angehängt, aber es ist im Moment ein Durcheinander und noch nicht ganz bereit für das, was ich erreichen möchte.

Schritt 6: Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format

Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format
Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format
Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format
Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format
Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format
Beobachten der RAW-Samples und Konvertieren in ein menschenlesbares Format

Wenn wir uns die RAW-Samples genau ansehen, können wir leicht feststellen, dass es vier Bereiche von Burst-Dauern gibt.

~80

~45

~170

~250

Die letzten drei Werte sind immer +250 -250 +250. Daher können wir sicher annehmen, dass es sich um das STOP-Bit der Burst-Daten handelt. Mit dem folgenden Code-Snippet können wir diese vier Burst-Dauern nun in '-', '.' aufteilen. und 1'.

Das Code-Snippet finden Sie im dritten Bild dieses Schritts.

Sie haben vielleicht bemerkt, dass ich die Zahl ~80 im Code ignoriert habe. Das liegt daran, dass jede ungerade Platzierung des Codes unbedeutend ist. Durch Drucken des Arrays _rawprocess auf dem seriellen Monitor (wie Sie im zweiten Bild dieses Schritts sehen können.) haben wir ein sehr klares Bild der empfangenen Daten. Durch Drücken verschiedener Tasten auf der Fernbedienung können wir nun die Musteränderungen in den Daten beobachten, wie im nächsten Schritt erklärt.

Schritt 7: Beobachten von Mustern durch Vergleich mehrerer Rohproben

Beobachten von Mustern durch den Vergleich mehrerer Rohproben
Beobachten von Mustern durch den Vergleich mehrerer Rohproben
Beobachten von Mustern durch den Vergleich mehrerer Rohproben
Beobachten von Mustern durch den Vergleich mehrerer Rohproben
Beobachten von Mustern durch den Vergleich mehrerer Rohproben
Beobachten von Mustern durch den Vergleich mehrerer Rohproben

Indem wir nur die dekodierten Daten ausdrucken, können wir uns ein klares Bild davon machen, welche Bits verwendet werden, um welche Daten zu senden.

Die Einstellung POWER SLEEP und TURBO verwendet nur ein Bit. d.h. entweder '.' oder eine '1'.

Der SWING verwendet drei nebeneinander liegende Bits. was entweder als '…' oder '111' geht.

Die Lüfter- und Modusauswahl verwendet ebenfalls 3 Bits jeweils '1..' '.1.' und 1'

Die Temperatur verwendet vier Bits, die den Wert mit binär codierten Bits mit einem Offset von 16 senden, was '…' bedeutet. sendet den Wert von 16 Grad Celsius während '111'. sendet 30 Grad Celsius.

Schritt 8: GEBEN Sie die decodierten Daten an den seriellen Monitor aus

GEBEN Sie die dekodierten Daten an den seriellen Monitor aus
GEBEN Sie die dekodierten Daten an den seriellen Monitor aus

Wie Sie im Bild sehen können, habe ich alle von der AC-Fernbedienung gesendeten Bits erfolgreich decodiert.

Von nun an wissen diejenigen, die Erfahrung im Umgang mit ir-Protokollen haben, bereits, wie man das Signal neu codiert und an das AC sendet. Wenn Sie sehen möchten, wie das gemacht werden kann, warten Sie auf mein nächstes instructable, das ich in einer Woche oder so posten werde.

Schritt 9: Fertig

Vielen Dank für Ihre Zeit.

Bitte hinterlassen Sie einen Kommentar, wenn Ihnen das Projekt gefallen hat. oder wenn Ihnen ein Fehler aufgefallen ist.

Einen schönen Tag noch.

Empfohlen: