Infrarot Empfänger für Fernbedienungen mit RS232 Schnittstelle

Geschrieben von Andreas am 14. Februar 2015

Nachdem ich Anfang des Jahres unseren Wohnzimmer-PC von XBMC auf Kodi Mediencenter umgestellt hatte, bermerkten wir Probleme mit der Fernbedienung. Wie sich herausstellte, war es ein Problem mit der nun gestiegenen Systemlast: Der Infrarotempfänger war mit der einfachen Schaltung von der lirc-Webseite mit dem PC verbunden. Die Messung der Impulsdauer geschieht dann im Linux Kernel per Software. Bei hoher Systemlast kann es hier zu Messfehlern kommen, die in der Folge zu Fehlern bei der Aufzeichnung der Impulssequenz führen. Der Tastendruck wird dann nicht korrekt oder falsch erkannt. Als Lösung enwickelte ich eine kleine Schaltung die mittels Mikrocontroller die Zeitmessung vornimmt und die Daten dann an den PC überträgt.

Schaltung

../_images/schaltplan1.png

Schaltplan

Ich hatte zunächst einige Probleme mit vohergehenden Schaltungsentwürfen, da die Schaltung von der seriellen Schnittstelle mit Strom versorgt wird. Es ist wirklich wichtig als Spannungsregler einen Low-Drop Regler zu benutzen. Außerdem sollte der Spannungsregler einen möglichst geringen Strom durch den Masse-Pin haben, um die RS232 Schnittstelle nicht unnötig zu belasten. Der 78L05 funktionierte bei mir am besten. An den Mikrocontroller gibt es keine besondere Anforderung, es macht aber Sinn einen mit UART und Input Capture Fähigkeiten zu verwenden. Den ATtiny2313 hatte ich gerade zur Hand, für den Zweck ist jedoch völlig überdimensioniert. Ein ATtiny441 im 14-Pin Gehäuse wäre ausreichend. Wenn man Zeitmessung und UART in Software implementiert, reicht auch ein ATtiny25 mit 8 Pins.

Aufbau

Das Einzelstück habe ich auf einer SMD Experimentierplatine aufgebaut

../_images/aufbau1.jpg

Aufbau im Vergleich zum RS232 Stecker