Archiv verlassen und diese Seite im Standarddesign anzeigen : robby als Fernbedienug
Hallo zusammen,ich würde gerne die infrarot einheit als Fernbedienung nutzen was mir aber bisher noch nicht gelungen ist.Ich kann von einer Fernbedienung die Signale auswerten(Adresse und komando)aber wenn ich diese dann mit (send_irdata) verschicke passiert nichts.Der angesprochene CD-player reagiert nicht, die ir-signale von der zugehörigen Fernbedienug werden vom Rp5 erkannt (RC5-format),und ich konnte diese auch auswerten.Was muß jetzt konkret gesendet
werden damit ich ein gültiges ir-signal habe reicht da Adresse und komando in (HBYTE u. LBYTE) oder müssen auch noch die zwei start bits und das toggle bit gesendet werden?Ich habe mich im roboternetz forum umgesehen habe aber nichts gefunden was mir weiterhilft.Vielleicht kann mir ja jemand von euch sagen was ich genau tun muß bzw senden muß um ein ir-signal zu haben das vom cd-player angenommen wird.
wäre nett danke!!
gruß micha
email: michak1@aol.com
Hi!
The RC5 code is a 14-bit word bi-phase coded signal.
The two first bits are start bits, always having the value 1.
The next bit is a control bit or toggle bit, which is inverted every time a button is pressed on the remote control transmitter.
Five system bits hold the system address so that only the right system responds to the code.
Usually, TV sets have the system address 0, VCRs the address 5 and so on. The command sequence is six bits long, allowing up to 64 different commands per address.
The bits are transmitted in bi-phase code (also known as Manchester code).
Martin
Hallo Martin danke für deine Antwort, aber wie sich das Signal zusammensetzt weiß ich! aber wie sieht das ganze im program aus ? werden die beiden startbits gesendet? und wie ? wie wird das im program geschrieben das zb ein cd-player darauf reagiert ? Das ist mein problem!!
Du sendest diesen Code: 11xcccccvvvvvv
x: toggle bit (immer wenn du nen neues kommando senden willst musst du das bit wechseln (wenn grad 0 iss dann 1 und umgekehrt))
c: systemaddy (00000 für TV, 00101 für VCR)
v: Kommando (musste probieren)
Martin
Hallo michak1,
das RC5-Sendeformat des Robby sieht ja so aus:
S S T a4 a3 a2 a1 a0 c5 c4 c3 c2 c1 c0 == RC5
......<-KANAL-> <------ DATEN --------->
Mit der Routine SEND_TLM kann man das senden, wobei der Kanal in HBYTE (0..15) übergeben wird, die Daten in LBYTE.
Die Daten finden sich dann im Sendeprotokoll in c0 bis a1 wieder, der Kanal in a2 bis T.
Wenn Du den selben Code wie Deine RC5-Fernbedienung senden willst, nehmen wir z.B. die Taste ON/OFF mit dem CMD 12 und der ADR 0:
Vor dem Aufruf von SEND_TLM muß ...
- LBYTE auf 12
- HBYTE auf 0 gesetzt werden,
soll danach erneut ON/OFF gesendet werden, muß ...
- LBYTE wieder auf 12
- HBYTE auf 32 gesetzt werden.
In HBYTE muss also das Bit 3 (Zählung 0..7) bei jeder neuen Sendung getoggelt (umgeschaltet) werden.
Falls Dein zu steuerndes Gerät NICHT die Adresse 0 (wie im oberen Beispiel) hat, verteilen sich die Bits a0 bis a4 der Adresse (ADR) nacheinander auf die Bits 6 und 7 von LBYTE und auf 0 bis 2 von HBYTE.
Für die Bits c0 bis c5 des Kommandos (CMD) steht also nicht das ganze HBYTE, sondern nur die Bits 0 bis 5 davon zur Verfügung.
Wenn Du also vor dem Aufruf von SEND_TLM das gewünschte CMD und ADR so wie oben angegeben auf HBYTE und LBYTE verteilst, und Bit 3 in HBYTE bei jedem neuen Senden umschaltest, müßte der Robby wunderbar als Fernbedienung funktionieren. Das ist zwar vorher ein bisschen Bit-Schieberei, dürfte aber nicht so schwierig sein. Die Startbits S werden automatisch als 1 1 gesendet.
Gruß Dirk
P.S.: Ich hatte aber keine Zeit, um es zu probieren! 8-[
Hallo Michak1,
mich interessiert doch, ob Du den Robby als Fernbedienung hinbekommen hast!? :-s
Könntest Du ggf. das Programm veröffentlichen?
Gruß Dirk
Hallo dirk nee du bis jetzt hab ich es nicht hinbekommen sorry für die späte antwort bist du dir sicher das es mit send_tlm gehen muß und nicht mit send ir_data ?
Hallo Michak1,
ich glaube, SEND_TLM müßte gehen!
Wenn KANAL=HBYTE ist und DATEN=LBYTE, dann müßte man ...:
1.) ADR in HBYTE tun,
2.) HBYTE 2x nach rechts schieben,
3.) ADR in LBYTE tun,
4.) LBYTE 6x nach links schieben,
5.) CMD zu LBYTE addieren (CMD muß < 64 sein).
Senden und fertig. Beim nächsten Senden desselben Codes muss mit HBYTE = HBYTE OR 8 das Bit T gesetzt werden, weiter im Wechsel gesetzt/gelöscht.
Ich habe immer noch keine Zeit zum Ausprobieren, leider, leider 8-[
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.