Hallo Garret,
Am besten findet man sowas mit Google.
http://www.sprut.de/electronic/ir/rc5.htm
Viele Grüße
Flite
Ich möchte meinen Robby mit einer Fernbedienung steuern! Dafür muss ich aber die Codes der einzelnen Taster kennen, wie sie übertragen werden! Ich hab eine Fernbedienung von Philips, die Nummer ist "RC 2543/01". Ich möchte den RC5 IR - Datenrahmen gebrauchen. Kennt einer eine Seite, wo die ganzen Codes stehen?
Danke
Garret
Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.
Hallo Garret,
Am besten findet man sowas mit Google.
http://www.sprut.de/electronic/ir/rc5.htm
Viele Grüße
Flite
Ich will den Robby mit der "Volumen +" Taste fahren lassen, und nur mit der Taste. Weiß jemand, was ich da eingeben muss, damit der Roboter weiß, welche Taste gedrückt wurde? Ich hab das Problem, dass der Roboter bei egal welcher Taste nach vorne fährt.
Ich hab das dahin geschrieben "if LBYTE =16 and HBYTE =32 then goto vorwärts" Die Geräteadresse ist 32 und das Kommando ist 16
Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.
Hallo Garret,
Hm, sieht auf den ersten Blick doch ganz gut aus. Kommando 16 ist tatsächlich der Code für 'Volumen +' . Wenn ich den Artikel in dem angegebenen Link richtig verstanden habe, gibt es allerdings keine Geräteadresse 32, sondern nur 0..31.
Vielleicht könntest du mehr von deinem Programm veröffentlichen, damit man den Gesamtablauf besser verfolgen kann.
MfG
GaronG
hier ist das Hauptprogramm!
gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off
beep 368,10,0ause 50
'------- IR-FORMAT EINSTELLEN----------------
'gosub REC80
gosub RC5
'--------------------------------------------
'--- WARTEN AUF CODE UND ANZEIGEN ---
'--------------------------------------------
#LOOP
gosub GET_IRDATA
if LBYTE and HBYTE =&HFF then goto LOOP
if LBYTE =&H0C and HBYTE =&H20 then goto stop
if LBYTE =&H02 and HBYTE =&H20 then goto vorwärts
ADR=HBYTE:CMD=LBYTEause 50
'------- DISPLAY ADDRESS --------------------
gosub LED1ON
for counter= 1 to ADR
gosub LED4ONause 5:gosub LED4OFFause 30
next
pause 50
gosub LED1OFF:gosub LED2ONause 50
for counter= 1 to CMD
gosub LED4ONause 5:gosub LED4OFFause 30
gosub LEDSOFF
goto loop
'-------------------------------------------
#vorwärts
SYS FWDR:SYS FWDL:SPEED_L=100:SPEED_R=100:goto loop
#stop
SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=0:goto loop
Jetzt ist das Problem, dass er zwar nur bei der Taste "Volumen +" fährt, aber ich hab ja auch dadrin geschrieben, dass, wenn ich die "Standby" Taste drücke, dass er dann stehen bleibt. Aber er bleibt nicht stehen, und ich weiß nicht warum. In meinen Augen stimmt das Programm.
Danke
Garret
Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.
Hallo Garret,
auf den ersten Blick sehe ich in deinem Programm auch nichts böses. Vielleicht sendet deine Fernsteuerung keine '12' (bzw. &H0C). Das kannst du aber leicht testen. Im Verzeichnis TOOLS steht ein Programm DISPLAY_IR_CODE. Verändere den Code so, dass er dir das Ergebnis deiner Tastendrücke statt mit LEDs direkt am Bildschirm ausgibt. Funktioniert mit "Print" Kommando und dem Programm Hyperterminal von Windows. Kriegst du das hin?
MfG
GaronG
Hallo,
mein Robby functioniert mit RC5 codes von einem universal fernbedienung.
Vol+ = 17 = &H11
Vol- = 16 = &H10
Prog+ = 32 = &H20
Prog- = 33 = &H21
dass program befragt/benutzt nur die LBYTE und functioniert einwandfrei.
gruss
Henk
Hallo Garret,
die RC5-Codes der meisten Fernbedienungen sind:
Taste ADR CMD
-----------------------------
ON/OFF 00/32 12
Teletext ON 00/32 60
Teletext OFF 00/32 63
CH+ 00/32 32
CH- 00/32 33
M(ute) 00/32 13
VOL- 00/32 17
VOL+ 00/32 16
AV 00/32 56
--/- 00/32 10
1 00/32 01
2 00/32 02
3 00/32 03
4 00/32 04
5 00/32 05
6 00/32 06
7 00/32 07
8 00/32 08
9 00/32 09
0 00/32 00
FF 00/32 52
REW 00/32 55
STOP 00/32 54
PAUSE 00/32 36
PLAY 00/32 50
REC 00/32 46
Dabei wechselt der Wert von ADR bei jedem Tastendruck hier zwischen 0 und 32, ist also wenig hilfreich bei der Abfrage.
Der CMD-Code (LBYTE) steht in der letzten Spalte.
Gruß Dirk
Ich denk mal schon, dass der eine '12' sendet! Bei dem Beispielprogramm DISPLAY_IR_CODE kann man ja zählen, wie oft LED4 blinkt. Das hab ich gemacht, und bei der Standby Taste blinkt sie 12 mal. In der einen Liste steht bei Standby ja auch 12.
Das er fahren soll, das geht ja, nur wenn ich eine andere Taste drücke (auch die Standby), dann fangen die LEDs an zu blinken.
Meine Ergebnisse habe ich schon, ich weiß nur noch nicht, auf welchem Wege ich zu ihnen gelangen werde.
Hallo Garret,
die LEDs fangen an zu blinken, wenn KEINE der 3 if-Bedingungen erfüllt ist. Denn dann läuft das Programm in den Bereich --- DISPLAY ADDRESS ----. Dieses Blinken kann übrigens ganz schön lange dauern (bei Adresse H20 und Command 12 dauert das immerhin 32,8 sec, falls ich mich nicht verrechnet habe).
Das beduetet, die Bedingung für 'goto stop' wurde nicht erfüllt. Entweder wurden nicht die richtigen Codes gesendet (einer von BEIDEN) oder der Compiler löst die Hierarchie der Rechenzeichen nicht richtig auf. (Hab ich bei Mini-Compilern schön öfter gesehen). Lösung: Klammern setzen, die Eindeutigkeit bringen, also
if ((bedingung1 = x) and (bedingung2 = y)) then goto ....
MfG
GaronG
Lesezeichen