mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IR-FB Toshiba Klimaanlage auslesen


Autor: Christopher G. (cbg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: MagIO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 = 0,674625 ms HIGH & 1,489500 ms LOW
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).

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Didi S. (kokisan2000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christopher G.,

lasse mir mal Deine Post-Adresse zukommen. Ich kann Dir vermutlich ein 
paar Muster vom TSOP zuzkommen lassen.

Gruß
kokisan2000

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.