Einfacher Empfänger für RC5 - Fernbedienungen
(CCS C Sourcecode)

Wer auf der Suche nach einem einfachen Sourcecode für RC5-Dekodierung war, ist nun fündig geworden!
Das Programm empfängt interruptbasiert über einen TSOP1738 Infrarotempfänger die Kommandos einer Philips oder Marantz Infrarotfernbedienung und dekodiert das Signal.
Die Geräteadresse sowie das Kommando werden in getrennten Variablen abgespeichert, so dass eine Interpretation des Befehls sehr einfach wird.

Der Beispielsourcecode ist für einen PIC16F648A, lässt sich jedoch problemlos auch für andere PIC-Typen wie z.B. den 16F84, PICs der 18F-Serie und wahrscheinlich auch für PICs der 12F-Serie modifizieren.

Der Empfänger (TSOP1738) muss dabei an den Interrupt-Pin (normalerweise PIN B0) angeschlossen werden. Bei PICs mit mehr als einem externen Interrupt kann der Empfänger natürlich auch an einen anderen PIN angeschlossen werden, das Programm ist dann entsprechend zu ändern.

Trifft ein Infrarotkommando ein, so wird es innerhalb der Interruptroutine direkt vollständig dekodiert und es wird eine Flag-Variable gesetzt, welche dem Hauptprogramm anzeigt, dass ein neues Kommando bereitsteht.
In der Hauptprogrammschleife kann der PIC somit andere Aufgaben ausführen...oder man schickt ihn einfach Schlafen.

Genaue Spezifikationen des RC5-Standards werde ich hier nicht erläutern. Auf der Seite von sprut wird alles prima erklärt...allerdings gibt es dort nur Assemblersourcecodes.

Hier kann der Sourcecode heruntergeladen werden:

rc5.c

Der Sourcecode ist für den CCS C - Compiler. Es sollte jedoch nicht schwierig sein, den Quelltext an andere C-Compiler anzupassen.

Der Anschluss des Empfängers (TSOP1738) gestaltet sich äußerst einfach. Für einen störungsfreien Betrieb sollte man - wie in der folgenden Abbildung gezeigt - noch ein paar zusätzliche Bauteile vorsehen.

Bei Fragen einfach mailen!

Home
Letztes Update: 28.10.2007