Hallo! Ein Freund von mir hat eine Toshiba Klimaanlage und wir wollen die auch automatisiert schalten. Nach langer Suche konnte ich das Service Manual zum Gerät finden. Man sieht, dass das Signal eine 36.7 kHz Trägerfrequenz hat. So einen Empfänger gibts leider nicht beim großen C (was anderes gibts hier in der Nähe nicht). Gibt zwar bei Digikey und Farnell den Empfänger aber benötige derzeit nichts anderes und nur für den Empfänger zahl ich keine 10+ EUR Porto. Hab mal ein paar Einschaltcodes über einen TSOP1736 mit dem Saleae Logic aufgezeichnet und versucht die zu interpretieren. Wie man in der angehängten .txt sieht, sind die Timings jedoch nicht sehr schön. Bei manchen TSOP Datenblättern steht, dass ein "Toshiba Micom Format" unterstützt wird. Hat jemand ein Datenblatt zu diesem Format? Ich finde leider kein Datenblatt zu dem Format sondern immer nur andere Datenblätter, wo es namentlich erwähnt wird.
Hmmmm .... also ich weiß ja nicht, was Toshiba Micom sein soll, aber für mein Verständnis ist das dahinter liegende Format doch Wurscht. Wenn das Teil eine Trägerfrequenz von 36,7 kHz hat, dann extrahiert ein TSOP36 doch einfach nur das Signal - egal welches Format dieses hat. Ich spiele im Moment auch ein wenig mit IR codes rum. Den Code, den ich dafür verwende macht folgendes: 1. Warten auf das Signal 2. Solange lesen, bis ein Buffer der groß genug ist für ca. 1s Signal voll ist 3. Buffer auswerten durch zählen von 0en und 1en. Die Werte werden in einer sortierten Tabelle eingetragen (mit erlaubter Toleranz, damit kleinste Abweichungen nicht zu mehrfach-Einträgen führen) - genau genommen sind es 2 Tabellen, eine für die 0 und eine für die 1. 4. Übersetzen des Signals im Buffer in einen String (mit Hilfe der Tabelle) Mit der Tabelle kann man verschiedene Fernbedienungen erkennen, da diese sich oft schon im Timing unterscheiden. Das umwandeln in einen String funktioniert so: Die 0en und 1en werden nochmal gezählt. Jetzt wird in der Tabelle nachgesehen an welcher Stelle in der Tabelle diese Zeit (wieder mit Abweichung) gefunden wird. Wird für eine 0 die Zeit mit index 0 gefunden, dann wird diese übersetzt in ein "a". index 1 = "b" .... Für die 1en wird daraus "A", "B" ..... Kennt das Programm die Fernbedienung, dann kann man natürlich die Tabelle wiederverwenden und braucht nicht erst das Timing ermitteln. Um nun festzustellen welche Taste gedrückt wurde braucht man nur den gelesenen String mit einer Tabelle von Strings vergleichen. Oder man analysiert, wie die Strings für die verschiedenen Tasten aussehen und kann da eventuell noch ein "Schema" ausmachen.
> Hab mal ein paar Einschaltcodes über einen TSOP1736 mit dem Saleae Logic > aufgezeichnet und versucht die zu interpretieren. Wie man in der > angehängten .txt sieht, Ich kann da keine Timings erkennen. Und das erkennen von Timings in Textfiles ist eh, sagen wir mal suboptimal. Du kannst normalerweise auch einen Empfaenger fuer eine andere Traegerfrequenz nehmen, nur sinkt da die Reichweite erheblich. Das ist aber egal weil du den ja nur zum analysieren deiner FB brauchst. Wenn du etwas automatisieren willst dann willst du doch spaeter nur senden oder? Und da erzeugt die Traegerfreqeuenz ja dein Microcontroller. Olaf
Danke für die Antworten. Mit dem Saleae Logic gehts eh ganz gut. Ich habe aber den Verdacht, dass die HIGH und LOW-Times verfälscht sind, weil der Empfänger eben 36 kHz und nicht 36.7 kHz hat. Die sind nämlich ganz schön krumm und immer leicht unterschiedlich. Olaf schrieb: > Ich kann da keine Timings erkennen. Und das erkennen von Timings in > Textfiles ist eh, sagen wir mal suboptimal. Ganz oben steht
1 | 1 = 0,674625 ms HIGH & 1,489500 ms LOW |
2 | 0 = 0,650750 ms HIGH & 0,430375 ms LOW |
. Ist zwar nicht das Gelbe vom ei und von mehreren Werten der Mittelwert aber die Logic Session hab is bei dem Feund von mir. Wenn die Empfängerfrequenz nicht so kritisch ist (36 kHz statt 36.7 kHz) dann kann ich ja mal anfangen, das zu testen. Werd halt mit 0,5 ms und 1,5 ms anfangen und dann mit den LOW und HIGH-times herumspielen. Die FB ist ziemlich lästig, weil sie egal wie lange man die Taste gedrückt hält nur einmal den Code sendet. So nette Tools wie WinLirc fallen damit aus, denn bei denen Steht dann, dass man die Taste gedrückt halten soll (damit das Signal oft kommt).
> dass die HIGH und LOW-Times verfälscht sind, > weil der Empfänger eben 36 kHz und nicht 36.7 kHz hat. Das ist Unsinn. Diese Frequenz ist die Traegerfrequenz. Das verwendet man nur um den Empfaenger auf einer bestimmten Arbeitsfrequenz moeglichst empfindlich zu machen, und ihn andererseits gegen andere Signale unempfindlich. Das fuehrt nur dazu das ein Empfaenger fuer eine andere Frequenz etwas unempfindlicher ist. Aber der Unterschied zwischen 36khz und 36.7 ist so gering das es sicher kein Problem ist. > 1 = 0,674625 ms HIGH & 1,489500 ms LOW > 0 = 0,650750 ms HIGH & 0,430375 ms LOW Das bedeutet das der Bittakt bei 1.5khz liegt. Die siehst du hast etwas zehn IR-Impulse am Empfaengereingang, und damit sollte dann alles funktionieren. > Die FB ist ziemlich lästig, weil sie egal wie lange man die Taste > gedrückt hält nur einmal den Code sendet. Und? Ich denke du hast einen Logicanlyzer? Zumal er hier auch eine Soundkarte tun wuerde. Olaf
Danke Olaf! Werde mal ein paar Sachen ausprobieren und schauen wies läuft. Ist das erste IR "Projekt" für mich. Olaf schrieb: > Und? Ich denke du hast einen Logicanlyzer? Zumal er hier auch eine > Soundkarte tun wuerde. Habe damit nur gemeint, dass ich damit nicht einfach mit (Win)Lirc o.Ä. die FB einlesen kann, was ja bei vielen möglich ist.
Hallo Christopher G., lasse mir mal Deine Post-Adresse zukommen. Ich kann Dir vermutlich ein paar Muster vom TSOP zuzkommen lassen. Gruß kokisan2000
Danke fürs Angebot Dirck S. Ich werd mal schauen, ob ichs mit den herausgelesenen Daten so hinbekomme. Die zum Senden benötigte Frequenz zu erstellen ist ja eh kein Problem. Falls ich doch einen brauchen könnte, werd ich mich melden.
So. Hab heute was zusammengeschrieben, das die in der .txt stehenden Werte mit einer IR LED schickt. Ist derzeit einfach dreckig mit _delay_us gemacht, Modulationsfrequenz mit FastPWM aber es hat gleich funktionniert. Ging mir irgendwie zu schnell ;) Läuft auf einem Atmega16. Das Datensignal liegt dabei an der Anode der LED an, die 36.7 kHz Frequenz an der Kathode.
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.