PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Und wieder IR-Fernbedienung



brenki
12.03.2005, 16:06
Nochmal ne Frage zur IR-Fernbedienung

Wie kann ich unbekannte codes einer Fernbedienung ( per Robby ) auslesen ?
Habe da eine, die ich gerne benutzen würde, jedoch bekomme ich von allen Tasten nur ein 23,23 ( HBYTE,LBYTE ) zurück.
b.z.w 46,46 nach mehrmaligem betätigen der Tasten.

Mit den Beispiel-Progs komm ich auch nicht weiter, es bleibt bei
23,23 b.z.w 46,46

Hat jemand eine Idee ?

Hab die Postings in den einzelnen Foren durch.
Aber eine Lösung zu meinem Problem hab ich nicht gefunden.

Eine andere Fernbedienung soll nicht in Frage kommen.

Mein Motto : " geht nicht , gibts nicht "
______________

Mfg brenki

darwin.nuernberg
12.03.2005, 17:28
Erst mal zur Funktion.
Arbeitet Dein Empänger überhaupt?
Will meinen, bekommst du überhaupt etwas oder funktioniert dein Empänger evt. garnicht.
Probier doch mal mit einer andere FB aus, damit Du sicher bist.

Dann musst Du den Systemcode kennen, welchen die besondere FB benutzt.

Ist der Code RC5 oder RC6 oder sogar noch was anderes.

Speziell mit Bascom ist der Umgang mit RC5 und RC6 angeraten, da diese von der Programmiersprache unterstüzt werden. Alles andere müsste dann "zu Fuß" ausprogrammiert werden.

RC6 ist allerdings (in meiner Version 1.11.7.7) nur als Sender verfügbar und nicht als Empfänger.



Kennst Du den Systemcode Deiner FB nicht, diese sendet aber defintiv RC5 dann kannst Du einfach erst mal alles empfangen und darstellen:


Do
Getrc5(address , Command)
print " Adresse : ";
print address;
print " Command : ";
print Command
waitms 100
loop


Dein Motto "geht nicht, gibt's nicht" kann ganz schön teuer werden...

rbraune
12.03.2005, 18:10
Hallo,

bei mir ist es ähnlich:
Von vier getesteten Fernbedienungen konnten nur die Signale von einer der vier Fernbedienungen ausgewertet werden (habe natürlich RC5/REC80 getestet).
Und bei dieser konnte ich insgesamt nur 7 verschiedene Signale produzieren, viele davon eben mehrfach, selbst wenn ich HBYTE und LBYTE auswerte.
Bei mir sah es so aus:
# HBYTE/LBYTE
Ein/Aus, Lautstärke höher, Stop:
42/53
Play, schneller Rücklauf:
42/58
Lautstärke tiefer, AV, Programm 1, Programm 8:
42/42
Programm tiefer, Pause:
42/45
Programm 3:
42/54
I/II:
42/46
OK:
42/62

Alle anderen Tasten brachten nichts.

Ich hatte mir dazu übrigens das entsprechende Programm von Conrad angepasst, bei dem man immer die Anzahl des Blinkens zählen musste.
Bei dieser Version werden HBYTE und LBYTE per print am COM ausgegeben. Geht also viel schneller... Siehe Code.

Wenn Du nur diese beiden verschiedenen Signale empfängst, musst Du wohl noch andere Fernbedienungen testen.
Conrad empfiehlt ja eine CV 100 - Best.Nr. 349127, die ich mir bestimmt kaufe, in der Hoffnung, mit dieser mehr verschiedene Signale erzeugen zu können.
Vielleicht hat jemand diese Fernbedienung und weiß, wie viele verschiedene Signale sie produziert???


Robby





'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
'IIIIIIIIII MOBILE ROBOT EVALUATION PROGRAM IIIIIIIIIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
' EINFACHES TOOL UM DIE CODIERUNG IHRER IR_FERNSTEUERUNG ZU LESEN
' ---------------------------------------------------------------------
' FUNKTION DES PROGRAMMS
'----------------------------------------------------------------------
' Das Programm wartet auf Empfang eines IR-Codes von einer Fernsteuerun
' RC5 oder REC 80.
' Wenn ein gültiger Code empfangen wird dies mit einem Beep bestätigt,
' LED 1 zeigt an, dass die Ausgabe der Adresse folgt:
' Danach wird der Wert der Adresse durch Blinken von LED4 angezeigt.
' 10 Blinkzeichen entsprechen ADRESSE=10
' Es folgen 2s Pause dann zeigt LED2 an, dass die Ausgabe des Kommandos erfolgt
' Danach wird der Wert des Kommandos durch Blinken von LED4 angezeigt.
' 10 Blinkzeichen entsprechen Kommando=10

'Empfängt der Roboter keinen gültigen Code, so stellen Sie versuchsweise
'auf REC80 Format um (die entsprechende Anweisung ist bei der Initialisierung
'auskommentiert.
'Denken Sie auch daran, dass RC5 ein Toggle-Bit hat, das bei jeder Betätigung
'der Taste umgeschalten wird. Sie bekommen daher evtl. zwei verschiedene Werte
'für die Adresse
'-----------------------------------------------------------------------



'--------------------------
'------ I/O PORTS ---------
'--------------------------
'- INTERFACE LCD/EXTPORT --
define sdio port[1]
define sclio port[3]
define strobe port[4]
'-- INTERFACE COM/NAV -----
define DATALINE port[1]
define CLOCKLINE port[2]
'--------------------------
'------ SENSORS ---------
'--------------------------
define LIGHT_L ad[7]
define LIGHT_R ad[6]
define SYS_VOLTS ad[3]
define CHRG_CURRENT ad[2]
define SYS_CURRENT ad[1]
define MIC ad[4]
define TOUCH ad[5]
'---------------------------
'------ DRIVE -------------
'---------------------------
define SPEED_L da[1]
define SPEED_R da[2]
define REV_L port[6]
define REV_R port[5]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
'--- INTERFACE BUFFER ----
define LBYTE byte[1]
define HBYTE byte[2]
define SUBCMD byte[3]
'---- OPERATION DATA ------
define EXTPORT byte[4]
define LED1_F bit[29]
define LED2_F bit[30]
define LED3_F bit[31]
define LED4_F bit[32]
define SYSTEM_STATUS byte[5]
'--------------------------
'---- USER MEMORY -------
'--------------------------
define ADR byte[6]
define CMD byte[7]
define COUNTER byte[8]
'--- SYSTEMROUTINEN -----------
define PLM_SLOW &H01C4
define SYSTEM &H01C9
define COMNAV &H0154
'- ERWEITERTE SYSTEM ROUTINEN -
define REVR &H0101 'ANTRIEB RECHTS RÜCKWÄRTS
define REVL &H0106 'ANTRIEB LINKS RÜCKWÄRTS
define FWDR &H010B 'ANTRIEG RECHTS VORWÄRTS
define FWDL &H0110 'ANTRIEB LINKS VORWÄRTS
define ROTR &H0115 'RECHTS DREHEN
define ROTL &H0119 'LINKS DREHEN
define REV &H011D 'RÜCKWÄRTS
define FWD &H0121 'VORWÄRTS
define COMNAV_STATUS &H0125 'UPDATED ALLE FLAGS IM STATUS-REGISTER
define ACS_LO &H01E1 'ACS POWER LO
define ACS_HI &H01E9 '
define ACS_MAX &H01F1 '
define SEND_TLM &H014A 'SENDET TELEMETRIE (CH=HBYTE,DATEN=LBYTE)
define SEND_SPEEDR &H0134 'SENDET TLM KANAL 8,PLM RECHTS
define SEND_SPEEDL &H013A 'SENDET TLM KANAL 7,PLM LINKS
define SEND_SYSSTAT &H0144 'SENDET TLM KANAL 0,SYSTEM STATUS
'(FLAGS für ACS,FWD/REV, ACS_LO/HI/MAX)
'---------- INIT---------------
gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off
beep 368,10,0:pause 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
ADR=HBYTE:CMD=LBYTE: Beep 368,50,0:pause 100
'------- DISPLAY ADDRESS --------------------
gosub LED1ON
'for counter= 1 to ADR
'gosub LED4ON:pause 5:gosub LED4OFF:pause 30
'next
'pause 100
'gosub LED1OFF:gosub LED2ON:pause 100
'for counter= 1 to CMD
'gosub LED4ON:pause 5:gosub LED4OFF:pause 30
'next
print ADR;"/";CMD

GOTO LOOP
'end
'-------------------------------------------

'IIIIIIIIIII LED DRIVER IIIIIIIIIIIIIIIII
#LED1ON
LED1_F=on:goto EXTPORT_WRITE
#LED1OFF
LED1_F=off :goto EXTPORT_WRITE
#LED2ON
LED2_F=on:goto EXTPORT_WRITE
#LED2OFF
LED2_F=off:goto EXTPORT_WRITE
#LED3ON
LED3_F=on:goto EXTPORT_WRITE
#LED3OFF
LED3_F=off:goto EXTPORT_WRITE
#LED4ON
LED4_F=on:goto EXTPORT_WRITE
#LED4OFF
LED4_F=off:goto EXTPORT_WRITE
#LEDSOFF
EXTPORT=EXTPORT and &H0F:goto EXTPORT_WRITE
#EXTPORT_WRITE
LBYTE=EXTPORT:SYS SYSTEM:RETURN

'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM IIIII
#GET_IRDATA
SUBCMD=1:sys COMNAV:return
#SEND_IRDATA
SUBCMD=0:sys COMNAV:return
#RC5
SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC
HBYTE=00:SUBCMD=2:sys COMNAV:return
#RC5_INT
SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2
HBYTE=00:SUBCMD=2:sys COMNAV:return
#REC80
SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD
HBYTE=00:SUBCMD=2:sys COMNAV:return
#REC80_INT
SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03)
HBYTE=00:SUBCMD=2:sys COMNAV:return
'IIIIII SYSTEMROUTINEN SYSTEM IIIIIIIIIIII
#NO_ACS_INT
SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB
HBYTE=00:SUBCMD=2:sys COMNAV:return
#ACS_INT_200
SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04
HBYTE=50:SUBCMD=2:sys COMNAV:return
#SUBSYS_PWR_ON
sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8
sys SYSTEM:return
#SUBSYS_PWR_OFF
EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM
deact sdio:deact sclio:return


#CLR_DISTANCE
SUBCMD=3:sys COMNAV:return
#L_DISTANCE
SUBCMD=6:sys COMNAV:return
#R_DISTANCE
SUBCMD=7:sys COMNAV:return
'---------COM/NAV GERÄTEREIBER -------------
'syscode "p5driv.s19"

Dirk
12.03.2005, 20:34
Hallo brenki,


Eine andere Fernbedienung soll nicht in Frage kommen.

Der Robby kann nur mit RC5 und REC80 Fernbedienungen arbeiten. Deshalb muss man halt eine passende suchen!
Ich nehme die CV 150-2 von CONRAD, mit der ich alle Codes auswerten kann, die die senden kann (alle Tasten funktionieren).

Gruß Dirk

blizzard
20.03.2005, 11:03
HI brenki

Ich hatte auch das selbe Problem. Habe mehrere Fehrnbedingungen ausprobiert, ging aber keine. Vor kurzer Zeit hab ich mir dann einen neuen Fernseher gekauft und die beiliegende Fernbedinung hat dann funktioniert. Ich würde zuerst von RC5 auf REC80 umstellen und wenn das nichts bringt die von Conrad kaufen.

mfg blizzard

JuMpIt
05.07.2006, 12:39
Nur mal so eine neben frage, es gibt doch solche Ferndedinungen die man selber Prommarienen kann, also zb. Damit man CD Player und TV auf einer hat - KÖnnte man sich so eine nicht irgendwie zurcjt machen das alle Tasten gehen??

OlliH
05.07.2006, 17:40
Ja hab ich selber mal so ne Universalfernbedienung beim Edeka gekauft weil es dort gerade eine gab. Bei der gibts Codes wo alle Tasten gehen.
Die beim Conrad ist im Grunde ja auch nichts anderes.