PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei der IR Verarbeitung



KevinT
11.02.2006, 15:40
Hallo,
ich habe ein Problem mit dem Befehl GETRC5. Ich habe schon das Forum nach Hilfe durchsucht aber leider nichts hilfreiches gefunden, bzw. funktioniert es nach zahlreichen Tipps immer noch nicht. Evt. liegt es ja auch an meiner Schaltung, deshalb werde ich einfach einen Überblick über meine Schaltung und dem Programmcode geben.
Zur Verwendung stehen:
- ein Labor Netzteil
- ein RN-Board 1.4 (bestückt mit ATmega3216PU)
- ein SFH5110-36 (IR-Receiver)
- Universal Ferbedienung Phillips RU 258
Angeschlossen habe ich es so:
Vom Netzteil geht es zu einem Spannungsteiler, somit bekommt das Board 12V und die Receiver Schaltung 5V(Als Test, zur Funktion des Receiver habe ich eine LED an Out und gegen + angeschlossen. Beim drücken einer Taste auf der Fernbedingung blinkt diese LED dann. Ich denke damit ist die Funktion überprüft, oder? Ein Hinweis auf ein RC5 Signal ist dass aber nicht?)
Die Receiver- Schaltung besteht lediglich aus einem Widerstand der zwischen Positiv und Out liegt. Negativ ist direkt angeschlossen. Out führt direkt ans RN- Board Port D2.
Das ist meine Elektronische Schaltung.
Der Code sieht folgendermaßen aus:


$regfile = "m32def.dat"
$crystal = 16000000
$lib "mcsbyte.lbx"

Ddrc = &HFF
Portc = &HFF

Config Rc5 = Pind.2
Enable Interrupts
Dim Address As Byte , Command As Byte

Do
Portc.2 = 0
Getrc5(address , Command)
If Address < 255 Then
Portc.1 = 0
End If
Loop
End

Das ist mein Code. Es soll also nachdem eine Taste auf der Fernbedienung gedrückt wird die LED an Port C1 aufleuchten. Die LED an Port C2 dient lediglich zur Überprüfung, dass der Code abläuft.
Was mir aufgefallen ist, ist dass eine Spannung in Höhe von ca. 6V an Port D2 gegen Positiv anliegt. Meiner Meinung nach dürfte dies doch gar nicht der Fall sein weil es doch ein Eingang ist, oder?
Die Fernbedienung habe der Beschreibung nach jeweils einmal auf alle Codes der Hersteller Sony und Phillips hin getestet, es hat aber keiner Funktioniert.
Ich hoffe dass mir jemand von euch weiterhelfen kann. Danke

Kevin

Olle_Filzlaus
11.02.2006, 16:28
Hallo,

hatte am anfang auch probleme it dem RC5 code.

habe es jetzt so gemacht und geht super.



'******************************************
'* Atmega8 mit 8MHz Quarz *
'* Grundlage RC5 Empfang *
'******************************************

'************************************************* ******************************

$regfile "m8def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.2 , Rs = Portd.0
Config Lcdbus = 4
Config Lcd = 16 * 2


$lib "mcsbyte.lbx"

Config Rc5 = Pinc.5

'************************************************* ******************************

Enable Interrupts

Dim Address As Byte , Command As Byte

Cursor Off
Cls
Lcd "Waiting for RC5."

Do
Getrc5(address , Command)

If Address = 0 Then
Command = Command And &B01111111 'die fernbedienung gibt zwei werte aus, die wechseln.
'das liegt am toggelbit. dadurch merkt man wie oft die taste gedrückt wird.
'durch die bitreihe 01111111 wird das toogelbit draufaddiert(?).
'dadurch werten immer die selben werte ausgegben.
Locate 2 , 1
Lcd "Adr:" ; Address ; " Cmd:" ; Command ; " "
End If

Loop
End


wenn du etwas schalten willst einfach noch ein if bedingung rein machen.
vorher eventuell nochmal die tasten von der fernbedinung checken.

also der code wie er hier ist funzt. habe auch zwei fernbedinungen. die von philips fernsehr geht, die von meinem receiver nicht, auch ein philips. also muss man scheinbar glück haben.
probiers aus.

cu arno

KevinT
11.02.2006, 18:29
Hallo Arno,
danke erstmal für deine Antwort. Ich habe es ausprobiert aber leider hat es auch nicht funktioniert.
Was mir Unklarheiten bereitet ist dass am Port des RC5 Input negatives Potenzial von 6 Volt anliegt. Kann dass richtig so sein?

Mfg
Kevin

Olle_Filzlaus
11.02.2006, 19:29
Hallo,

ne 6V ist sehr ungewöhnlich.

mess mal ohne den IR-Sensor was am port vom mikroproz rauskommt. und dann mal am ir sensor, was für ein ir sensor nimst du überhaupt?

ein tsop17XX hat ja gnd, Vs , Signal

nicht das du da was vertauscht hast.

sonst wüsste ich nicht wo die egativen 6V herkommen können. oder poste mal dein schaltplan.

cu arno

Dirk
12.02.2006, 11:21
Bei diesem Thema passt meine Frage vielleicht noch rein:

Für den IR-Empfang mit BASCOM (GETRC5) wird ja nicht unbedingt ein bestimmter Port für den Anschluss empfohlen (BASCOM-Beispiel nimmt D2).
Frage: Muss der Port eigentlich interruptfähig sein oder ist das egal?

Gruss Dirk

KevinT
12.02.2006, 19:14
Hallo,
also ich benutze den SFH 5110-36. Der sollte normalerweise auch Funktionieren. Die 6 Volt liegen an alle Ports meines RN-Board an(wenn ich nur das Board angeschlossen habe, sowie dies auch der Fall ist wenn die Empfänger -Schaltung mit angeschlossen ist). Das macht mich nun schon ein wenig stutzig denn das dürfte doch eigentlich garn nicht der Fall sein, oder. Es müssten doch beim normalen Betrieb, d.h. wenn ich einfach nur Spannung ans Baord anlege und mein Multimeter mit PWR + und irgendeinem PORT Pin verbinde 0 Volt angezeigt werden(wenn der Controller nicht Programmiert ist). Bei mir werden überall etwa 6Volt angezeigt. Muss man evt. irgendetwas auf dem Board umstellen?

Mfg
Kevin

Ratber
14.02.2006, 07:04
6V passen überhaupt nicht.

Mess mal am Spannungsregler was der ausspuckt.

Wenn da keine 5V rauskommen dann ist entweder der Regler oder dein Multimeter nicht ok

KevinT
17.02.2006, 14:17
Hallo
erstmal danke für eure Antworten. Es alg an dem Receiver. Ich habe mir nun einen TSOP 1736 bestellt und der Funktioniert einwandfrei. Also nicht den SFH5110 verwenden, für alle die dies vorhaben :-)

Mfg
Kevin