Hallo zusammen,
anbei habe ich mal zusammengetragen, was man für einen RC5 Code Tester mittels µC benötigt, um mal die Reihe der µC Tutorials weiterzuführen. Ich weiß das es viele Anleitungen auch im Internet gibt, aber ich habe es mal für "unsere" µC Tutorials aufgearbeitet.
Aufgabe:
Testen, ob eine Fernbedienung oder Universalfernbedienung einen RC5 Code aussendet und wenn ja, welchen. Dies kann hilfreich für weitere Projekte mittels IR Diode, RC5 Fernbedienung und LED's sämtlicher Konfigurationen sein.
Benötigte Teile:
- Atmel Attiny 2313 (Pollin)
- Festspannungswandler - 5V - z.B. 7805 (Pollin)
- IR Empfänger Diode TSOP 1136 (Pollin)
- LCD 16*2 Goldentek GC-1602G0 (Pollin)
- Kondensator 4,7µF (lt. Datenblatt IR Diode)
- Widerstand 100 Ohm (lt. Datenblatt IR Diode)
- Grundverständnis für RC5 Code (Internet - z.B. ..:: hier ::.. oder ..:: hier ::..)
Aufbau:
Da ich noch kein Atmel Eval. Board besitze (ist aber in Arbeit) habe ich den Aufbau auf einer Experimentie Platine vorgenommen.
Die folgende Eagle Skizze soll den Aufbau mal verdeutlichen.
Ich habe mal keinen Programmer eingezeichnet, auch ein Reset Taster habe ich mal weggelassen. Dies ist alles ausführlich von Member Stefan_Z aufgearbeitet worden.
[Blockierte Grafik: http://img518.imageshack.us/img518/3364/rc5irlcdtesterap6.th.jpg]
Bascom Quell Code:
[code:1]
$regfile = "attiny2313.dat"
$crystal = 4000000
$lib "mcsbyte.lbx"
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcd = 16 * 2
Config Pinb.4 = Output 'Pinb.4 = Ausgang (evtl. Kontroll LED)
Initlcd
Cursor Off
Cls
Config Rc5 = Pinb.0
Enable Interrupts
Dim Address As Byte , Command As Byte
Cursor Off
Cls
Locate 1 , 1
Lcd "Waiting for RC5."
Do
Getrc5(address , Command)
If Address < 255 Then
'clear the toggle bit
'the toggle bit toggles on each new received command
'toggle bit is bit 7. Extended RC5 bit is in bit 6
Command = Command And &B01111111
'Toggle Portb.4 'schalte Kontroll LED (an oder aus)
Locate 2 , 1
Lcd "Adr:" ; Address ; " Cmd:" ; Command ; " "
End If
Loop
End
[/code:1]
Bemerkung:
Ich habe mal alles an Fernbedienungen durchgetestet was ich so hier habe (ca. 10 Stück). Das Ergebnis ist, das sowohl "Wald-und-Wiesen" Fernbedienungen als auch Fernbedienungen von Markengeräten, irgendwas aussenden, nur keinen RC5 Code.
Meine letzte Hoffnung war eine Medion Universal Fernbedienung (MD 41160) - an dieser habe ich den automatischen Suchlauf gestartet und nach ein paar Sekunden reagierte das Display. Ich habe mal bei Adresse "0" (für Fernseher) halt gemacht und diesen gespeichert.
Danach konnte ich mir alle "Commands" anschauen, die die einzelnen Funktionen aussenden (z.B. Command für Vol + "16" oder Vol - "17" )
[Blockierte Grafik: http://img518.imageshack.us/img518/2914/lcdrc5codeoe2.th.jpg]
Diese Codes kann man sich nun aufschreiben und darauf aufbauend für verschiedene Aufgaben verwenden - Ein- / Ausschalten, Dimmen, RGB Farben mischen usw.