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
:
Bearbeitet durch User
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
:
Bearbeitet durch User
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
Falkner F. schrieb: Das Bild zeigt kein RC5. Nach http://www.sprut.de/electronic/ir/rc5.htm#2 sieht das anders aus.
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
:
Bearbeitet durch User
Falkner F. schrieb: > Scheint wohl ich baue mir das nach allbewerter Manier mit Sender > Empfänger mit der alten guten TTL Technik Stephan 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
:
Bearbeitet durch User
Hallo Falkner, dieser Sketch läuft bei mir für RC5 auf einem 2313 inclusive RS232 Ausgabe und dürfte auf einem MEGA8 auch fehlerfrei laufen. Gruß Rudi '******************** RC5 Code Fernbedienungs-Empfänger für 8 Kanäle******************************* ' 1111.1111 bin ' 255 dec ' Lockbit ' | 0110.1111 bin ' | 111 dec ' | Fusebit ' | | 1101.1111 bin ' | | 223 dec ' | | Fusebit High ' | | | 1111.1111 bin ' | | | 255 dec ' | | | Extended Fusebit ' | | | | $prog &HFF , &H6F , &HDF , &HFF ' Fusebits einstellen für attiny2313 und 12MHz Quarz $lib "mcsbyte.lbx" $regfile = "attiny2313.dat" '$crystal = 3579545 $crystal = 12000000 $hwstack = 20 $swstack = 20 $framesize = 5 $baud = 4800 Config Rc5 = Pind.2 ' Eingang Sensor Config Portb = Output ' PortB als Ausgang Enable Interrupts ' Interrupts zulassen Portb.0 = 0 ' PortB auf High Portb.1 = 0 Portb.2 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 Portb.6 = 0 Portb.7 = 0 Dim Addr As Byte 'Variablen festlegen Dim Comm As Byte 'Command- Zielports bestimmen A1 Alias Portb.0 ' Ziffer1 Pin12 Port B.0 A2 Alias Portb.1 ' Ziffer2 Pin13 Port B.1 A3 Alias Portb.2 ' Ziffer3 Pin14 Port B.2 A4 Alias Portb.3 ' Ziffer4 Pin15 Port B.3 A5 Alias Portb.4 ' Ziffer5 Pin16 Port B.4 A6 Alias Portb.5 ' Ziffer6 Pin17 Port B.5 A7 Alias Portb.6 ' Ziffer7 Pin18 Port B.6 A8 Alias Portb.7 ' Ziffer8 Pin19 Port B.7 Do 'Rc5 Empfang starten Getrc5(addr , Comm) If Addr <> 255 Then Reset Comm.7 Select Case Comm Case 1 : Toggle A1 ' Wird 1 gedrückt, schalte Ausgang 1 Waitms 100 ' Sicherheit zum Schalten wegen toggle Befehl Case 2 : Toggle A2 Waitms 100 Case 3 : Toggle A3 Waitms 100 Case 4 : Toggle A4 Waitms 100 Case 5 : Toggle A5 Waitms 100 Case 6 : Toggle A6 Waitms 100 Case 7 : Toggle A7 Waitms 100 Case 8 : Toggle A8 Waitms 100 End Select Print "Taste: " ; Comm ; " empfangen" ; Chr(13) End If Loop End
Waren wir nicht schon soweit, dass der RC5-Code nicht funktioniert? 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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.