Hallo! Ich bin gerade dabei den Sony SIRCS code mithilfe eines PICAXE(18M2) "nachzubilden". Das Problem dabei: die IR led leuchtet zwar, funktioniert aber am Test-TV gerät nicht! Mein Code: 'Remote: Sony 'Device: TV --> Device Code = [BIN]00001 'Command: Power --> Command Code = [HEX]15 ; [DEZ]21 ; [BIN]0010101 'Protokoll:SIRCS Sony 'Datenword: 'Lead-in:2400µs high, 600µs low '7 Bit Command: LSB is left and MSB is right. '5 Bit Device:LSB is left and MSB is right 'Modulation Frq:40kHz 'Space-Pulse Verhältnis:50% w0 = 4500 'The whole Data word = 45ms main: w0 = 4500 'Startsquence gosub startseq 'Command 7 Bit, LSB first gosub one gosub zero gosub one gosub zero gosub one gosub zero gosub zero 'Device 5 Bit, LSB fist gosub one gosub zero gosub zero gosub zero gosub zero pwmout B.3,0,0 pauseus w0 'All that remains form the 45ms goto main zero: pwmout B.6,24,50 'PWM 40kHz and 50% Pulse-Space pauseus 60 '600µs Pause (x10) pwmout B.6,0,0 pauseus 60 w0=w0-120 return one: pwmout B.6,24,50 pauseus 120 pwmout B.6,0,0 pauseus 60 w0=w0-180 return startseq: pwmout B.6,24,50 pauseus 240 pwmout B.6,0,0 pauseus 60 w0=w0-300 return Bitte um Hilfe. Möglicherweise verbrauche gewisse Befehle zu viel Zeit, wie etwa gosub oder pwmout selbst. Gibt es villeich andere Lösungsansätze?
> Das Problem dabei: die IR led leuchtet zwar, Eine IR-LED solltest du mit bloßem Auge nicht leuchten sehen. Benutzt du Hilfsmittel zur Betrachtung der IR-LED (z.B. Camcorder mit NightShot) oder hast du eine falsche LED (für sichtbares Licht) eingebaut? > 'Lead-in:2400µs high, 600µs low > '7 Bit Command: LSB is left and MSB is right. > '5 Bit Device:LSB is left and MSB is right > 'Modulation Frq:40kHz > 'Space-Pulse Verhältnis:50% Hast du Möglichkeiten das gewünschte Timing zu überprüfen? > pwmout B.6,24,50 > pauseus 120 > pwmout B.6,0,0 > pauseus 60 Eine andere Methode ist es die PWM durchlaufen zu lassen und die Erzeugung der 1 oder 0 durch dazuUNDen eines Steuerpins zu machen. Du würdest den ganzen Code für die PWM Einstellerei in den Unterprogrammen sparen! Das Modulieren der PWM mit den Steuerbits durch das UND kann man per Hardware machen (externer 74xx). Du brauchst dann einen weiteren Pin am PICAXE. Oder indem man die Sende-IR-LED (bzw. die Treiberschaltung für eine leistungsfähige IR-LED) zwischen den PWM-Ausgabepin (wenn der PICAXE Hardware-PWM hat...) und einen Steuerpin hängt. PWM-Pin o-----+ | # # Vorwiderstand # | ^ IR-LED - | Steuerpin o---+
Klaus Wachtler schrieb: > Das ist kein gültiges C. Muss es ja auch nicht sein. Der GCC kann noch andere Sprachen neben C. ;-) Obige aber wohl eher nicht, insofern ist natürlich das, was du damit eigentlich ausdrücken wolltest (total Offtopic), schon richtig.
Die Mods sind hier ganz pfiffig, die werden das schon ins passende Unterforum "Mikrocontroller und Elektronik" verschieben...
Die IR led leuchtet ganz bestimmt. Ich überprüfe es mit einer Kamera und sogar mit einem IR empfänger am Serial Port zur Analyse(WinLIRC). Tut mir Leid, dass es kein C Sourcecode ist, weil ich den PICAXE in Basic programmiere. Habe leider keine Möglichkeit, das Timing zu überprüfen und glaube ,dass genau dies das Problem ist. Die Idee mit dem UND Gatter (hoffe verstehe das richtig) und dem Steuerping find ich gut! Würde mich freuen, wenn mir jemand eine genaue Bauteil/Produkt-bezeichnung sagen könnte, da ich auf diesem Gebiet keine Ahnung habe. Danke für die Hilfe.
> sogar mit einem IR empfänger am Serial Port zur Analyse(WinLIRC). Kannst damit kein primitives Timing aufzeichnen? In der Doku ist im Abschnitt Checking The Receiver dafür IRGraph angegeben. Ein anderes nützliches Tool könnte RawCodes sein. Wenn du es schaffst eine Kurvenform aufzuzeichnen, kannst du im PICAXE Code mit an den 1/0 Zeiten und den Bitfolgen drehen und beobachten, wie lange der Empfänger das fehlerfrei aufzeichnet. Passen die 40 kHz Trägerfrequenz zu deinem IR-Receiverbaustein? Bist du nah genug mit der Sende-LED am Empfängerbaustein? Zu möglichen Bausteinen schau im Artikel 74xx nach. Straightforward wäre ein UND also ein 74HCT08. Du kannst aber auch aus drei Gattern aus einem NAND IC wie dem 74HCT00 ein UND basteln. Wie steht u.a. in der Wikipedia.
Danke für die Hilfe! Habe das ganze mit dem UND Gatter und einem Steuerport gelöst. Hab jedoch den PICAXE nur mehr als PWM Generator im Einsatz, da er zu langsam ist, um im µs Bereich zu arbeitet. Stattdessen verwende ich einen Arduino ATMEGA328 und es funktioniert!!!! Nur noch eine Frage: hat jemand einen Ahnung wo ich eine Liste mit den NEC Infrarot Adresses und Command Codes herbekomme??
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.