Hallo
Ich bin neu hier im Forum. Vielen Dank schon einmal für eure
Unterstützung. Soeben habe ich mein Steckbord verdrahtet für einen
ersten Versuchsaufbau. RS232 für die Terminalausgabe und das Debugging
läuft. Nun habe ich an Pind2 einen TSOP4836 angeschlossen. Mit meinem
Logik-Prüfer sehe ich das wenn ich auf eine X-beliebige Taste der
Fernbedienung drücke das dieser auf LOW pulsiert. Leider wird mir die
Adresse bzw. das Commando nicht angezeigt. Ich sitze jetzt seit ein paar
Stunden davor und komme leider nicht weiter. Das Manchesterverfahren
etc. habe ich alles verstanden. Was noch offen ist, kann ich für einen
Test jede beliebige Fernbedienung benutzen oder muss ich dafür eine
Universalfernbediehnung besorgen? Das habe ich noch nicht
herausgefunden. Aber jenes würde einiges erklären :-). Ärgerlich wärs
jedenfalls. Den Code poste ich mit dazu. Ich danke jedem der mir hier
ein paar wertvolle Tipps geben kann, damit ich mein Projekt zu Ende
führe. Danke für Eure Mithilfe und ein schönes Wochenende.
Liebe Grüße
Falkner
--Code Abschnitt--
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 2400
Config Rc5 = Pind.2
Portd.2 = 1
Enable Interrupts
Dim Address As Byte
Dim Command As Byte
Dim Flag As Word
Flag = 1
Do
Getrc5(address , Command)
Print Address
Print Command
If Flag = 1 Then
Print "Wait for Command"
Flag = 0
End If
If Address <> 255 Then
Reset Command.7
Cls
Print "Addresse: " ; Address ; " Commando: " ; Command
Flag = 1
End If
Loop
End 'end program
Meine Bascom-Zeiten sind schon länger vorbei, aber ich meine zu wissen,
dass der Befehl Getrc5 nur das RC5-Protokoll decodieren kann. Das
verwenden aber längst nicht alle IR-Fernbedienungen. Hast du das
überprüft?
Zeig uns zusätzlich vielleicht auch ein Sample deiner Fernbedienung am
TSOP, dann sind genauere Angaben möglich.
MfG
Das ging jetzt aber Flott. Vielen Dank dafür. Ich habe mich an das
Beispiel der Hilfe gehalten. Keine der aufgeführten Fernbedienungen
ging. Doch sie gehen eigentlich so wie ich das messen kann mit dem
Logikprüfer. Da sehe ich das die LED am Prüfer blinkt. Dann gehe ich mal
davon aus, dass der TSOP auch das macht was er soll. Ich denke auch das
es an der Funktion liegt. Gibt es den einen eleganteren Weg? Der
Versuchsaufbau ist jetzt mit einem Atmega8 soll aber später durch einen
Attiny ersetzt werden. Was will ich machen? Ich will wenn das auslesen
klappt genau auf eine Taste abfragen und damit später eine Last schalten
über ein Relais. Danke für eure Mithilfe.
Liebe Grüße
Falkner
Solange du nicht sicher weißt, ob eine der Fernbedienungen RC5 sendet,
ist das stochern im Nebel. Hat du nur einen Logiktester oder auch ein
Oszilloskop? Wenn Oszilloskop, dann poste ein Screenshot von dem , was
der TSOP ausgibt.
Anhand der im Netzt verfügbaren Beschreibungen des RC5 Protokolls kann
man dann entscheiden, ob es wirklich RC5 ist.
Es gibt auch eine rc5send Kommando. Damit kannst du dir selbst eine FB
aufbauen und mit dem Atmega empfangen. Würde ich als weiteren Test
empfehlen.
Der TSOP decodiert nichts. Solange die Trägerfrequenz der Pakete im
Rahmen liegt, gibt der (fast) alles aus, was reinkommt.
Bei deinen Fernbedienungen kann ich schonmal sagen: die beiden von
Samsung habe ich auch, die verwenden nicht das RC5-Protokoll.
Falls du kein Oszilloskop/Logikanalysator hast oder keinen zweiten µC,
um einen Sender zu bauen, dann wird es schwierig. Alternativ decodiere
doch "zu Fuß", d.h. ohne der Bascom-Funktion. Da wäre es aber auch von
Vorteil, das Protokoll zu kennen.
MfG
Hi
Du hast recht die getrc5(address,command) Funktion blockiert alles.
Kommentiere ich die aus ist alles gut. Sobald ich diese wieder
einzementieren geht nichts mehr. Irgendwie scheint er mit dem Signal
nicht zurecht zu kommen. Die Fragen ist halt wenn ich das mit PWM machen
oder AC/DC Wandler auf was ich dann prüfen soll? Ich habe soeben eine
alte Schweiger Universalfernbedienung gefunden. Geht leider auch nix.
Hast du ne Idee ob ich das mit der getadc() Funktion mal einlesen soll
und der soll mir dann mal auspacken was er damit decodiert?
Oh je was habe ich mir da nur angetan?
Danke für deinen Support.
Liebe Grüße
Falkner
Du hast Recht. Das Signal wird oben auch bisschen überlagert. Ich habe
für solche Fälle 4 von der Sorte gekauft. Das jetzt alle defekt sind
kann ich fast nicht glauben. Das Kennbild aller ist ähnlich. Ich hab es
jetzt noch einwenig feiner hinbekommen. Aber wenn man auf einer Taste
dauer drauf bleibt dann kommt oben ein vertikaler Stick im Rechteck. In
der Zwischenzeit habe ich versucht das Signal einzulesen via ADC. Und
das geht einwanfrei. Drücke ein paar Tasten dann kommen unterschiedliche
Werte von 0-1023. Aber wie gesagt das ist dann eher nach dem
Zufallsprinzip. Sauberer wäre die andere Funktion wenn es den mal
klappen würde. Ich habe auch TSOP4838er gekauft. Die haben ein ähnliches
Bild allerdings auf einer 38KHZ Frequenz. Es ist zum Mäusemelken. Aber
das hast du mir ja schon einwenig angedeutet. Scheint wohl ich baue mir
das nach allbewerter Manier mit Sender Empfänger mit der alten guten TTL
Technik. Nix mit flexibler Programmierung diesmal. Ok. Danke dir für
deinen Support. Und nochmal ein schönes Wochenende.
Liebe Grüße
Falkner
Naja, so schnell würde ich persönlich nicht die Flinte ins Korn werfen.
Dein Oszi-Bild zeigt leider nicht die ganze Wahrheit. Kriegst du das
besser hin? Also mit definierten Pegeln (etwas mit den
Triggereinstellungen spielen) und mit einer ausreichenden Zeit für die
Horizontalablenkung, sodass mindestens ein ganzer Block zu sehen ist.
Mit diesen Infos könntest du dann das entsprechende Protokoll
decodieren.
Aber die Methode per ADC ist Unfug. Kreativ aber nicht zielführend ;-)
MfG
Falkner F. schrieb:> Scheint wohl ich baue mir das nach allbewerter Manier mit Sender> Empfänger mit der alten guten TTL TechnikStephan S. schrieb:> er TSOP decodiert nichts. Solange die Trägerfrequenz der Pakete im> Rahmen liegt, gibt der (fast) alles aus, was reinkommt.
Die TSOP machen nur die Pegelanpassung und filtern den 36..38kHz
Hilfsträger wieder raus. Die Datenbits kommen am Empfänger ziemlich
genau so raus, wie man sie beim Sender auf den 38kHz-Träger
draufmoduliert hat.
Das Übertragungsprotokoll ist im OSI Modell über der
Bitübertragungsschicht angesiedelt. Warum willst du da mit TTL-Gräbern
rummachen? Das ist alles so langsam, dass du das gut einem µC überlassen
kannst.
Falkner F. schrieb:> Du hast Recht. Das Signal wird oben auch bisschen überlagert.
Das sieht so aus weil das Signal nicht periodisch ist, mit dem einfachen
Oszi kommst du da nicht weit. Ideal wäre ein Speicheroszi oder min ein
Logic Analyzer. Als McGyver Lösung gibt es noch die Soundkarte zu
missbrauchen, suche mal nach 'Soundkarte Oszilloskop'.
Dann gibt es hier in der Artikelsammlung noch den IRMP Artikel. Ist ein
Universal IR Empfänger, zwar in C aber in dem Artikel stehen viele
brauchbare Infos. ZB das die meisten FB heute den NEC Code verwenden.
In Bascom kannst du versuchen das Signal mit konstanter Rate abzutasten,
die Nullen und Einsen in einem Array zu speichern und das auf der
seriellen ausgeben. Da hast du allerdings nicht viel Speicher im Mega8.
Jojo S. schrieb:> Ideal wäre ein Speicheroszi oder min ein Logic Analyzer.
Einen brauchbaren Logikanalysator für soetwas gibt es mittlerweile für
unter 7€ bei ebay (z.B. 141803548716). Das kann doch nicht das Problem
sein.
Forengast schrieb:> Einen brauchbaren Logikanalysator für soetwas gibt es mittlerweile für> unter 7€ bei ebay (z.B. 141803548716). Das kann doch nicht das Problem> sein.
Nur wenn man Samstag Abend da sitzt und etwas machen möchte... Außer
Dschungelcamp gucken meine ich.
Jojo S. schrieb:> In Bascom kannst du versuchen das Signal mit konstanter Rate abzutasten,> die Nullen und Einsen in einem Array zu speichern und das auf der> seriellen ausgeben. Da hast du allerdings nicht viel Speicher im Mega8.
So ähnlich habe ich das gerade in einem Kommunikationssystem gemacht
(ohne serielle Schnittstelle...). Statt eines Arrays aber ein Integer,
der reicht völlig mit etwas Bitschubserei. Acht MSP430 mit je 1kB Flash
kommunizieren so mittels IR und einer macht sogar noch ein paar Dinge
nebenher. Also sollte der ATmega8 mit seinen 8kB das alles locker in den
Speicher bekommen ;-)
MfG
Hallo
Vielen herzlichen Dank für eure Bemühungen das ist ja weltklasse. Da
weiss ich ja gar nicht wie ich das danken soll? Danke Danke Danke.
Mir ist gestern noch eine Idee in den Sinn gekommen. Nein nicht vor TV
Dschungelkiste. Solche Dinge schaue ich nicht. Und zwar muss ich ja
meiner Universalfernbediehnung erst mal den RC5 Code beibringen. Und das
schaffe ich erst wenn ich noch ein altes Geräte finde z.B. einen alten
Philips TV. Dann lerne ich sie dort an dann kann sie auch RC5 Signale
senden. Und dann sollte mein TSOP Pegelwandler das richtige Signal
rausspucken. Ich bin mir sicher das danach meine Schaltung rocken wird.
Bin ich mir sogar sehr sicher. Manchmal sieht man eben vor lauter Bäumen
den Wald nicht mehr. Das teste ich und poste es dann hier rein. Ich
wünsche allen einen schönen Sonntag.
Liebe Grüße
Falkner
Falkner F. schrieb:> Mir ist gestern noch eine Idee in den Sinn gekommen. Nein nicht vor TV> Dschungelkiste. Solche Dinge schaue ich nicht. Und zwar muss ich ja> meiner Universalfernbediehnung erst mal den RC5 Code beibringen.
Ja, das wäre eine Möglichkeit, denn keine Deiner im Foto abgebildeten
Fernbedienungen verwendet RC5. Und ich kann Dir versichern, dass
heutzutage auch keine aktuelle Fernbedienung mehr RC5 benutzt, denn Rc5
ist mangels Flexibilität längst ausgestorben.
Hinzu kommt, dass die fernöstliche Unterhaltungsindustrie noch nie RC5
benutzt hat. RC5 wurde von Philips entwickelt und wurde gern von anderen
europäischen (auch deutschen) Herstellern dann auch verwendet. Aber das
ist Jahrzehnte her.
Du findest RC5 mit viel Glück noch auf einer Universalfernbedienung, die
alte Philips-Geräte unterstützt.
Alternativ steigst Du von Bascom auf C um und benutzt die
IRMP-Bibliothek. Diese erkennt alle Fernbedienungen, die Du oben im
Foto abgelichtet hast - und mehr.
P.S.
Mit dieser Behauptung lehne ich mich auch nicht weit aus dem Fenster.
Die FBs auf Deinem Foto nutzen das NEC-, SAMSUNG32- und evtl. eine noch
das Kaseikyo-Protoll. Diese werden von IRMP neben weiteren 40
Protokollen erkannt.