Hallo µC-Gemeinde!
Ich habe hier ne kleine JVC RM-RK50 IR-Fernbedienung liegen und wollte
mein Radio mit ner uC-Schaltung steuern. Habe zuerst versucht, das
Drücken der Knöpfe der Fernbedienung von Extern über Kurzschluss der
entsprechenden Pin-Kombinationen zu erreichen, allerdings ist das IC
komisch verschaltet (2x4 Pin-Kombinationen für 5 Tasten) und meine
Versuche schlugen fehl.
20-Pin IC:
Aufschrift:
ET611
F3H0A
4 MHz Resonator
Bei LIRC gibt es ein Code-Profil:
#
# this config file was automatically generated
# using lirc-0.6.5(any) on Thu Sep 16 00:40:47 2004
#
# contributed by
#
# brand: JVC
# model no. of remote control: RM-RK50
#
begin remote
name JVC_RM-RK50
bits 8
flags SPACE_ENC|NO_HEAD_REP|CONST_LENGTH
eps 30
aeps 100
header 8462 4229
one 498 1601
zero 498 558
ptrail 501
pre_data_bits 8
pre_data 0xF1
gap 46649
toggle_bit 0
begin codes
Att 0x0000000000000071
Sound 0x00000000000000B1
Disc+ 0x0000000000000029
Disc- 0x00000000000000A9
Track+ 0x0000000000000049
Track- 0x00000000000000C9
Source 0x0000000000000011
Vol+ 0x0000000000000021
Vol- 0x00000000000000A1
end codes
end remote
Ich hatte jetzt gedacht, wenn es von "außen" nicht klappt, warum dann
nicht gleich die Fernbedienung nachbauen und das Protokoll nutzen? Aus
den Infos von LIRC werde ich nicht schlau, da ich von 8 Bit-Befehlen
(s.o.) noch nie was gehört habe.
Leider habe ich kein Oszi und nach längerer Suche keine Schaltung
gefunden, mit der ich die Befehle (z.B. über Soundkarte) auslesen kann.
Da es nur 5 Knöpfe sind, die ich "nachprogrammieren" muss, glaube ich,
wird das die schnellste Lösung sein, die Bitmuster einfach auszulesen
und in nem tiny zu implementieren.
Vielleicht weiß ja jemand von euch, um was es sich hier handelt.
Vielen Dank für die Hilfe,
Marco
Vielleicht hilft es weiter: http://www.techdesign.be/projects/011/011.htm http://eldo.gotdns.com/yard/index.html Gruß Mathias
Ich habe hier auch was gefunden: http://www.sbprojects.com/knowledge/ir/jvc.htm Das scheint ganz gut zu passen. Jetzt geht es nur noch um die Implementierung in den uC... Ich habe mir überlegt, alles "händisch" selbst zu machen und die 38kHz selbst zu erzeugen. Das mache ich mit dem Timer und in der ISR frage ich verschiedene Variablen ab und Toggle den Ausgang für die IR-LED (der Timer läuft 2*38000 Mal pro Sekunde über) in der vorgegebenen Sequenz: 1. 320 Zyklen "1" und 160 Zyklen "0" dann eine 16 Bit-Sequenz, in der jeweils pro Bit 20 Zyklen "1" und darauf für 2. Logisch-0: 20 Zyklen "0" 3. Logisch-1: 60 Zyklen "0" gesendet werden. Ich habe jeweils an eine Schleife gedacht, in der pro Durchlauf hochgezählt und der Ausgangspin getoggelt wird. D.h. für jede Sequenz 1.-3. gibt es eine eigene While-Schleife, die durch Fallunterscheidung durchgegangen werden. Schleife 1 zum Beginn nach dem Drücken einer Taste und 2. bzw. 3. beim bitweisen Durchgehen der Protokollcodes. Ich bin ein wenig skeptisch, ob ich damit auf dem richtigen Weg bin. Wie mache ich das am elegantesten? Wo rufe ich die "Verarbeitungsfunktionen" am besten auf? Gruß
Nachtrag: Mir kam eben noch die Idee, die LED zwischen zwei Pins zu hängen: Der eine Pin wird kontinuierlich von dem Timer-ISR auf 38kHz getoggled und das Ein- und Ausschalten des anderen Pins wird einfach aufmoduliert. Nehme ich dafür dann besser einen zweiten Timer (wie wird seine ISR dann mit den zu sendenden Daten "von Außen" gefüttert?) oder mache ich das ganz primitiv ala asm-"NOP" bzw. _delay_us / _delay_ms ?? Gruß Marco
Kann jemand was mit der Idee anfangen? Habe nochmal in den Büchern nachgelesen zur sinnvollen PWM Steuerung, komme aber nicht auf eine bessere Lösung.
Ich erbarme mich mal: Die Idee ist gut. Schalte zur LED antiparallel eine Diode und dazu im Ganzen in Serie einen Widerstand. Wenn die Diode Teil einer zweifarben-LED ist, hast du dann die Wahl zwischen: - rot - grün - gelb - aus Das dann noch blinkend in beliebiger Kombination möglich. Gruß - A.
Bau doch einfach eine RC5 Routine aus der Codesammlung um. Wenn du den Träger per ISR erzeugst und ein bisschen nachrechnest wirst du feststellen, dass die Zeiten alle Vielfache voneinander sind. Dann brauchst Du nur noch ein paar Zählschleifen. Und vergiss das Stoppbit nicht! Viel Erfolg!
@ Marco: Hi, hast du deine Idee nun in die Tat umgesetzt. Bin auch an dem Projekt interessiert, könntest du helfen? MfG
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.