LED-Leuchte mit IR-Fernbedienung
Da gab es
eine LED-Lichterkette mit Batteriefach für eine indirekte Beleuchtung hinter
dem Fernseher, und manchmal habe ich mich geärgert: Den Fernseher kann ich mit
der Fernbedienung abschalten, aber die Lichterkette nicht. Eine Fernbedienung
für die Lichterkette wäre eine feine Sache. Aber da steht auch ein Radio, ebenfalls
mit Fernbedienung. Da sind es schon zwei, noch eine weitere Fernbedienung würde
stören.
Ideal wäre es, wenn jede beliebige Infrarot-Fernbedienung auch die LED-Lichter
ein- und ausschalten könnte. Und das geht! Auf den Sparrow wird ein üblicher
IR-Empfänger gelötet. Das Empfangssignal geht an B0, parallel zu S1. Da es
ebenfalls aktiv low schaltet passt beides zusammen. Alles wird nun über
einen Li-Akku aus einem defekten Smartphone betrieben.
Die Software soll einen langen Tastendruck auf der Infrarot-Fernbedienung
auswerten und den LED-Ausgang dann umschalten. Normalerweise wird jede Taste
nur kurz gedrückt, darauf reagiert der Sparrow nicht. Man kann aber eine Taste
lang drücken, die für den Fernseher oder das Radio gerade keine Funktion hat.
Beim Radio verwende ich z.B. eine Taste für den CD-Player, der gerade nicht
aktiv ist. Oder der Fernseher ist gerade nicht an, da kann ich ja die
Kanal-1-Taste verwenden. Wie lange es genau dauert hängt von der
jeweiligen Fernbedienung und ihrem Protokoll ab. Das Programm wartet nämlich
einfach nur auf 500 irgendwelche Impulse. Das kommt dann ungefähr auf eine
Sekunde. Man drückt einfach so lange, bis die angeschlossene LED an- oder
ausgeht. Zusätzlich kann man die LEDs auch mit der Taste S2 schalten. Man
kennt das ja, manchmal ist die Fernbedinung gerade unauffindbar. Die Taktrate
ist auf 300 kHz herabgesetzt, damit das Gerät auch im Aus-Zustand möglichst
wenig Strom braucht. Zusammen mit dem IR-Empfänger kommt man nun auf etwa 1 mA.
Download: Sparrow_IR_LED.zip
Direkt laden: http://tiny.systems/categorie/cheepit/InfrarotLED
'Sparrow_IR_Toggle.bas
'TSOP IR-RX an B0
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Config Portb = &B000011010
Dim T1 As Word
Dim T2 As Word
Dim N As Word
Clkpr = 128 '300 kHz
Clkpr = 5
Clkpr = 5
Led1 = 1
Do
T1 = 0
Do
T1 = T1 + 1
If T1 > 1000 Then N = 0 '>100 ms Pause = Rücksetzen
Waitus 100
If S2 = 0 Then 'Alternative Bedienung mit S2
Toggle Led1
Waitms 50
Do
Loop Until S2 = 1
Waitms 50
End If
Loop Until S1 = 0 'IR-Puls Start
Do
Waitus 100
Loop Until S1 = 1 'IR-Impuld Ende
N = N + 1 'IR-Impulse zählen
If N > 500 Then '500 Impulse = lang gesdrückt
Toggle Led1 'AUS AN AUS AN
N = 0
End If
Loop