PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC5 empfang funktioniert nicht



Grillmeister Markus
28.09.2005, 17:25
hallo
Ich bin gerade dabei, mir einen kleinen fernbedienungsempfänger zu bauen (für TV-fernbedieung). Ich hab schon den artikel hier im forum gelesen und auch in der hilfe von bascom nachgeschaut, hat aber alles nix gebracht. Ich will einfach nur, dass der AT90S2313 mir den code über RS232 ausgibt. Dashier hab ich bis jetzt geschrieben:


$regfile = "2313def.dat"
$crystal = 3686400
$baud = 9600
$lib "mcsbyte.lbx"

Config Rc5 = Pind.2

Enable Interrupts

Dim Address As Byte , Command As Byte
Print "Waiting for RC5..."

Do
Getrc5(address , Command)
If Address = 0 Then
Command = Command And &B01111111
Print Address ; " " ; Command
End If
Loop
End
andere adressen hab ich auch schon ausprobiert...
kann mir jemand sagen, was da falsch is?
mfg Maggus

pebisoft
28.09.2005, 17:57
streiche : If Address = 0 Then
setze mal: if address < 127 then

bei mir geht die fernbedienung nur so.

mfg pebisoft

Grillmeister Markus
28.09.2005, 18:10
habs ausprobiert...geht aber leider immer noch nicht

pebisoft
28.09.2005, 18:23
dann sendet deine fernbedienung nicht den rc5-code.
hatte bei pollin spaßeshalber mal 10 fernbedienungen bestellt für 4 euro.
keine spuckte den rc5-code aus, alle einen anderen. dei funktion habe ich mit eienr cmoscam festgestellt, die ir-licht sichtbar macht.
mfg pebisoft

Marco78
28.09.2005, 18:23
Dann kann es nur noch sein, das entweder der Empfänger nicht richtig angeschlossen ist, die Frequenz des Empfängers nicht die der FB ist, oder die FB kein RC5 sendet.

In wiefern geht es denn nicht? Geht das Programm nicht in die Schleife in der die Werte ausgegeben werden sollen? Dann wird es eine der drei Möglichkeiten sein. Ich tippe mal das die FB kein RC5 sendet.

Grillmeister Markus
28.09.2005, 18:37
also an der fernbedienung liegts ganz sicher nicht, da in der bedienungsanleitung steht, dass die mit RC5 arbeitet.
beim einschalten bekomme ich nur das "Waiting for RC5..." zurück, mehr nicht. Als sensor verwende ich den TSOP 1736. Hat sonst noch jemand ne idee, an was es liegen könnte?
mfg Maggus

Marco78
28.09.2005, 18:43
Eine FB mit Anleitung?
Das ist doch sicherlich eine programmierbare?!
Welchen Code hast du denn eingestellt?

Richtig angeschlossen ist der TSOP? Je nach Hersteller haben die ein anderes Pinout. Ich weiss ja nicht nach welcher Schaltung du ihn angeschlossen hast.

36kHz sollte eigentlich passen für die meisten FB's.

Grillmeister Markus
28.09.2005, 18:46
das steht in der anleitung vom fernseher, zu dem die fernbedinung gehört.
ja, richtig angeschlossen is er
ich schau grad, ob er auch genügend spannung hat, gemessen hab ich nämlich nur ca.3-3,5V und im datenblatt steht, dass er mindestens 4,5V braucht (so wie ich das verstanden hab)
mfg Maggus

Grillmeister Markus
28.09.2005, 18:51
yeha...es scheint zu funktionieren...lag wohl wirklich an der spannung.
Also vielen dank für eure antworten, mfg Maggus

Berni28
18.06.2006, 17:24
Hallo miteinander,
ich habe ein ähnliches Problem, wie oben schon beschrieben:
Die Philips Fernbedienung funktioniert, meine anderen leider nicht. Die senden scheinds keinen rc5-code. Wie kann ich trotzdem den code einlesen ? Gibt's da vielleicht eine Art Teach-In-Methode ?

Marco78
18.06.2006, 21:36
Gibt's da vielleicht eine Art Teach-In-Methode ?
Das wäre schön! Soetwas suche ich auch noch.
Mit Bascom kannst nur RC5 empfangen. Und Sony, RC5 und RC6 senden.
Mag sein, das Empfang für die anderen beiden auch geht, glaube ich aber nicht.

Eine universelle Empfangsmethode für IR-Codes kann es nicht geben, weil es zu viele unterschiedliche gibt. Zum einen mit und ohne Togglebit. Andere senden einen bestimmten Code wenn die Taste gedrückt wird, einen anderen so lange sie gehalten wird und zum Schluss einen dritten, wenn man die Taste nicht mehr gedrückt hält.

Nun gibt es zwei Möglichkeiten.
1. Man konzentriert sich auf den Code der FB, die man hat und schreibt eine eigene Routine (lol, nichts leichter als das)
2. Man schreibt eine Routine, die (fast) alle Codes erkennt und auswertet. (Ha, das ja noch viel leichter :()

Wie auch immer, alles andere als RC5 empfangen bedeutet viel Arbeit.

Berni28
19.06.2006, 07:27
Hi Marco78,
mag sein, daß es nicht gerade einfach ist, aber ich habe dieses Problem und kann es nicht umgehen.
Anforderung:
Ich habe 2 Zimmer * 4 Dachflächenfenster mit Rollo von Velux und drei Klimaanlagen von Daikin. Jetzt möchte ich mir einen IR-Sender bauen, der auf einem Tastendruck alle Rolläden runterfahren läßt (momentan muß man diese separat zufahren lassen). Als zweite Funktion (für einen späteren Zeitpunkt) soll die Steuerung, sollte es doch noch zu warm werden, die Klimageräte selbsttätig einschalten (abhängig vom Außenwetter). Nur habe ich eben das Problem, daß keine der beiden FB's mit rc5 arbeitet. Die Velux ist codiert, da sie bis zu 16 Rolläden steuern kann und von der Daikin kommt auch nix an.
Meine Gedanken gehen momentan an die Aufzeichnung eines Strings. Diesen String gilt es anschließend zu zerlegen (Gemeinsamkeiten suchen und Bitlänge abgleichen). Hat man das erst mal, kommt die Funktion für die Auswertung. GetRC5 ist ja auch nur eine Funktion und müsste dann nur noch angepasst werden. Vielleicht ließe sich hier eine allgemeine mit Angabe von Bitlänge, Togbits und dgl. schreiben, die dan individuell angepasst werden kann. Leider bin ich eher der Hardwarebauer, als der Programmierer. Da hab ich bislang noch sehr wenig Erfahrung.
Ich probier mal was. Mal sehen, ob's klappt.

Marco78
19.06.2006, 21:50
Ich denke, es wäre einfacher, wenn man die Möglichkeit hat sich das Signal auf nem Oszilloskop anzuschauen. Dann sieht man schonmal auf wieviel Bits man sich konzentrieren müsste.


mag sein, daß es nicht gerade einfach ist, aber ich habe dieses Problem und kann es nicht umgehen.
Ich wollte dich auch nicht von abhalten. Ich würde dich auch unterstützen, wenn ich wüsste wie :( Ich selbst brauche auch so ein "Teach-In".


...als der Programmierer. Da hab ich bislang noch sehr wenig Erfahrung.
Ich denke Velus wird nicht verraten, was für einen Code die verwenden. Von daher solltest du dich mal mit Timern beschäftigen um Pulslängen zu ermitteln. Oder schau dir mal den Bascom-Befehl Pulsein an. Vielleicht kommst du damit schonmal in die richtige Richtung.

Alternativen wären eine andere Fernbedienung oder die vorhandene (wenn's die vom Desing und den Tasten her sein soll) auf RC5 umbauen. Mit Bascom kann man ja auch RC5 senden.

Es wäre schön, wenn du über Erfolge aber auch Miserfolge berichten würdest, weil wie schon gesagt, ich mich in naher Zukunft mit dem Thema auch beschäftigen muss. Wenn ich mal etwas mehr Zeit habe, kann ich dir mal ein paar Links zu IR-Codes geben falls die dir helfen.

Berni28
20.06.2006, 07:16
Hmmm, ich hab zwar nen Oskar, kann damit aber nicht wirklich umgehen. Bin schon froh, wenn ich darauf überhaupt was dargestellt bekomme ;-).

Mit dem was ich erreichen will hab ich mich wohl nicht ganz verständlich ausgedrückt:
Die Geräte (Klimagerät und Rollos) sind samt Empfänger fest installiert. Um nun nicht in diese Geräte selbst eingreifen zu müssen (allein schon wegen der Garantie), möchte ich die Fernbedienungen (FB) mit einer AVR-Steuerung sozusagen nachahmen.
Sprich: Ich baue mir eine Art Universalfernbedienung, die bei einem bestimmten Ereignis den hinterlegten Befehl per IR sendet. Genau so als würde ich den entsprechenden Knopf auf der Original-FB drücken.
Darum kann ich die FB's schon gar nicht auf RC5 umbauen.

In einem ähnlichen Thread hab ich letztens einen Link besucht, der IR-Codes verscheidener Hersteller (ITT, SONY, PIONEER,...) erklärt hat. Natürlich waren meine Beiden nicht dabei, aber hier kocht wirklich jeder seine eigene Suppe. Kannst mir deine Links trotzdem zukommen lassen !
Ich hab - einen Versuch ist's ja wert - mal die Hersteller angeschrieben. Mal sehen, was von denen kommt. Aber wie du schon bemerkt hast, werden die wohl nix rauslassen.
Ich bleib dran und werde weiter berichten :-) !

Marco78
20.06.2006, 17:39
Sorry, ich hab mich zu sehr auf den Titel verbissen. Da ging es um Empfang.


Hmmm, ich hab zwar nen Oskar, kann damit aber nicht wirklich umgehen. Bin schon froh, wenn ich darauf überhaupt was dargestellt bekomme
Dann ist es ein guter Zeitpunkt es zu verkaufen. Was willst für haben?

Also wolltest du "deine neune FB" erst anlernen und dann den Code wieder senden. Ich würde das so nicht machen. Da bräuchte man ja zwei Routinen, von der die eine später nichts mehr zu tun hat als nur Speicherplatz zu verbrauchen.
Das erzeugen der Signale würde ich wohl mit einem Timer machen. Aber erstmal die Signale haben ;)

Schau dir mal http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm an. Dort erstmal http://www.cesko.host.sk/IgorPlugUSB/images/WinXP/TestProgram.JPG
Vielleicht kannst du damit schon das Signal erkennen. Zumindest die Länge der Pulse und Anzahl von 0 und 1.

Berni28
21.06.2006, 07:35
Dann ist es ein guter Zeitpunkt es zu verkaufen. Was willst für haben?
;-) netter Versuch, aber a bisserl kann ich ja damit umgehen.


Also wolltest du "deine neune FB" erst anlernen und dann den Code wieder senden. Ich würde das so nicht machen. Da bräuchte man ja zwei Routinen, von der die eine später nichts mehr zu tun hat als nur Speicherplatz zu verbrauchen.
Im Prinzip richtig, allerdings würde ich sowas wie den IR to USB Detektor zum aufzeichnen nehmen und dann per AVR nur die Codes senden, wenns auf Speicherplatz ankommt. Sollte das keine Rolle spielen (z.B. Mega32) hat man tatsächlich eine frei definierbare Universalfernbedienung.

Hab gestern mal die SHIFTIN-Funktion versucht und bin zumindest soweit gekommen, dass die Kommunikation ansich funktionieren würde. Nur brauchbare Werte konnte ich noch nicht darstellen. Hatte für eingehende Testzwecke aber zu wenig Zeit.
Mir fällt gerade noch eine Möglichkeit ein:
Eine Taste per ADC einlesen und über einen DAC senden (haben die AVRs ja implementiert). Dann würde der Sendecode ansich keine Rolle mehr spielen ! Muss ich auch mal weiterverfolgen.

Marco78
23.06.2006, 18:55
Ob Shiftin der richtige Befehl dafür ist weiss ich nicht. Die Codelänge ist ja mehr oder weniger unbekannt. Mal schauen, was weitere Tests bringen.

Zum ADC. Der TSOP liefert dir ja nur H und L. Damit bekommst du vom ADC ja nur Werte im Bereich um 0 und Werte im Bereich um 256 oder 1024 (ja nach Auflösung des ADC). Das entspricht ja auch nur 0 oder 1 wie du es sonst an einem Pin hättest.
Wichtig ist ja aber die Zeit des Signals.
Einen echten DAC hat ein AVR ja auch nicht, aber auch damit könntest du ja nur 0 und 1 erzeugen wenn du was senden willst. Die IR-Diode kann ja nur an oder aus sein. Auch hier fehlt die Zeit bzw Signallänge.

Berni28
26.06.2006, 07:35
Oh ja, du hast recht ! Ich hab das mit der Aufzeichnung einer wave unter Windows verwechselt. Da würde das funktionieren.
Da muß ich wohl doch mal meinen Oskar bemühen ;-) !
Von Daikin habe ich schon eine Rückmeldung erhalten:
'...der IR-Sendecode ist von Daikin nicht freigegeben und wird mir somit nicht mitgeteilt...'. Na gut, schockt mich jetzt nicht, denn damit habe ich schon gerechnet. Bei Velux wird's auch nicht anders sein, da die sich ja extra Hardware dazu anfertigen lassen.
Mal sehen, was meine Versuche so bringen.

Berni28
27.06.2006, 10:40
Ha, ich wusste doch, da gibt's was:
Den Sprachrecorder-Chip ISD1416 !
Der ist adressierbar mit 160 Adressen und kostet gerade mal 14,-EUR beim Conrad (Art.:164984). Beim RS (www.rs-components.de Art.:252-1105) gibts bei den Datenblättern sogar ein Beispiel-Applikations-Datenblatt.
Ob die Samplefrequenz von 8kHz reicht, muß ich ja erst noch mit meinem Oszi rauspfriemeln, aber die Hoffnung stirbt ja bekanntermaßen zuletzt.
... to be continued ...