www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ir-Fernbedienung


Autor: Stefan_h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Mein Vorhaben: Signale von einer x-beliebigen IF-Fernbedienung einlesen, 
abspeichern und nach einer bestimmtern Zeit wieder ausgeben.

nun meine Fragen:

-Kann ich das IR-Signal enfach über eine einfache IR-Empfangsdiode 
einlesen und den momentanen Zustand(Hi,Low) immerwieder im RAM 
abspeichern?

-Das ganze zur Ausgabe einfach aus dem RAM die Zustände, im gleichen 
Abstand wie die Speicherung erfolgte, auslesen und über eine IR-Diode 
senden?

Damit bin ich ja eigentlich Frequenzunabhängig, und kann jede belibige 
Fernbedinung verwenden, oder?

Ich hoffe ihr versteht was ich meine.
lg,

Stefan

Autor: josef angermeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo stefan

also ich hab mir vor kurzem eine eigene fernbedienung ähnlich wie du 
eine hast gebaut. nun "frequenzunabhängig" ist wohl das falsche wort, 
eher protokollunabhängig. du musst ja das signal in bestimmten 
zeitabständen einlesen, und je öfter desto besser approximierst du das 
Originalsignal und desto besser die wahrscheinlichkeit dass dein 
Fernsehgerät das signal auch versteht. allerdings verwenden die 
fernbedienungen verschiedene frequenzen um das signal zu modulieren und 
ich weiß nicht genau wie genau das bei den fernbedienungen sein muss, 
eventuell musst du dann mehrere sende-dioden gleichzeitig verwenen. - 
weiß ned, mal schaung was da andere dazu sagen. ich hab nur einen 
fernseher daheim !

Autor: FrankL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast jede Firma (Grundig, Sony u.s.w) benutzt ein unterschiedliches 
Protokoll. Google mal.

Autor: Stefan_h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich möchte Ja das Protokol umgehen indem ich einfach das Signal von der 
Fernbedienung 1:1 speicher. Wenn ich alles richtig verstanden habe, 
arbeiten die Fernbedienungen mit einer Frequenz zwischen 30 und 50 kHz. 
d.h. ich müßte zum beispiel bei einer Fernbedienung mit 30kHz mindestens 
alle 1/30000 s den Zustand messen und speichern. Da brauch ich dan einen 
RAM mit 30000/8 byte(3750 byte) um eine Sekunde aufzuzeichnen. Also wird 
das ganze nicht so einfach gehen wie ich mir das gedacht hatte.

Stimmt mein Gedankengang?

lg,

Stefan

Autor: FrankL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaein

Die Trägerfrequenz ist so hoch. Wenn Du aber ein IR Empfänger benutzt 
(TSOPxxxx) bis du im ms Bereicht.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das könnte funktionieren. Allerdings musst du mindestens (!) mit der 
doppelten Frequenz abtasten.
Wie wär's damit, wenn du nur das demodulierte Signal abspeichern 
würdest? Du könntest auf eine steigende Flanke warten, den Timer 
starten, bei der nächsten fallenden Flanke den Timerwert abspeichern und 
den Timer neu starten usw, also die Längen der Impulse messen. Das 
Problem wird sein, dass die Befehle ja so lange gesendet werden wie du 
auf den Knopf drückst, wenn dazwischen keine Pausen kommen wird es 
schwer sein das Ende eines Befehls zu erkennen.

Gruß
Andreas

Autor: Stefan_h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

@andreas: das müßte gehn, da die Pause(laut Oszi) fast so lang ist wie 
der Befehl, damit müßte es also gehn.

@FrankL: Habe schon mal ein Datenblatt von einem IR-Empfänger in der 
Hand gehabt, aber ich komm nicht ganz klar damit, wie die Signale von 
der fernbedienung mit den signalen am Ausgang des Empfängers 
zusammenhängen. Könntest du mir das erklären?

lg,

Stefan

Autor: FrankL (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
TSOP17XX laut Applikation anschließen. (5V,GND, Ausgang)

Wenn Du ein Scope hast könnste Du die vom TSOP17XX ausgehenden Signale 
sichtbar machen.
Es müßte auch mit einem Audio input (Spannung auf 1 Volt begrenzen) und 
einem Audioeditor (z.B Cooledit) funktionieren.

Das folgende Bild sieht man, wenn eine Sony IR Fernbedienung aktiv ist 
(SIRCS code)

Startbit 2,4ms active low followed with 0,6ms gap.
Logic "1" active low 1,2ms followed with 0,6ms gap.
Logic "0" active low 0,6ms followed with 0,6ms gap.
No signal received from TSOP17** the output is high.

    Startbit             "1"       "0"          0..6 bits  0..4 bits
      2,4ms       0,6 1,2       0,6          command    system
5V ---+            +-+      +--+   +--+   H
         |             |   |      |    |    |    |       total 12 bits
0V     +---------+  +----+    +--+   +--.L....


Die gesammten Bits (12) und die Pause habe ich hier nicht eingezeichnet.
Die Command Bits sagen was über die Funktion laut,leise u.s.w die System 
Bits sagen was über das Gerät aus CD VTR u.s.w.


Das ist aber nur ein Kodierungsverfahren. Es gibt noch eine ganze Menge 
wie Phasensprung u.s.w.

Auch werden die Codierungen von den Firmen nach einiger Zeit gewechselt.
Wenn man eine Leuchstofflampe einschaltet würden einige Impulse am 
TSOP17xx herauskommen.
Im Anhang einige IR codes.

Autor: Arvid Teichtmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Frank, danke für die IR-Übersicht.
Letztes Jahr gab es in Elektor auch mal eine knappe Übersicht in zwei
Artikeln über verschiedene IR-Codes.

Stefan,
als Anhang findest Du ein Datenblatt vom TSOP17xx.
Was verstehst Du nicht?
Die beiden letzten Ziffern vom TSOP17xx stehen für die
Trägerfrequenz, also z.B. beim Sony Sircs Protokoll 40kHz ==> TSOP1740.
Die Trägerfrequenz liegt je nach Hersteller/Protokoll zw. 30 und 40kHz,
dafür gibt es die verschiedenen Typen vom TSOP17xx.
Am Ausgang des TSOP-Moduls ist die Trägerfrequenz natürlich nicht
mehr vorhanden, sondern nur noch der wesentlich niederfrequentere 
Datenstrom der seriellen Daten.
Das TSOP-Modul nimmt Dir die ganze "Demodulation" ab, Du hast am
Ausgang einen Datenstrom mit 5V-Logikpegel. Natürlich können dann durch 
Störungen (Lampen, andere IR-Quellen) immer noch Fehler in diesem 
Datenstrom sein, die du abfangen musst.
Zum Thema abtasten der Tastencodes:
Es gibt IR-Fernbedienungen, die beim Drücken und beim Loslassen
der Taste einen (verschiedenen) Code aussenden. Habe ich vor ein
paar Tagen zufällig mit dem Oszi bei einer Grundig(?)-Fernbedienung
gefunden.

Gruss
Arvid

Autor: Stefan_H (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Dank Arvid is mir gerade ein licht aufgegangen:-) Mein problem lag 
darin, das ich nicht wußte wie das mit Demodulation gemeint war, jetzt 
is es mir klar.

Wenn ich nun das signal vom Empfänger einlese, kann ich die bequem und 
einfach abspeichern, wie genau is jetzt egal. Wenn ich das Signal wieer 
ausgeben möchte muß ich es ja wieder auf die gleiche Methode modulieren. 
Wie geht dan daß??

Wenn ich z.b. einen Empfänger mit 30kHz habe, reagiert dein irgendeiner 
Form auf 36kHz Signale?

lg,

Stefan

Autor: FrankL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst eigentlich jeden Empfänger benutzen nur die Reichweite ändert 
sich

Autor: Arvid Teichtmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@FrankL: Du hast Recht, das habe ich verschwiegen.

@Stefan_H: Die TSOP-Module sind für ihre jeweilige Trägerfrequenz 
optimiert (Filter, PLL) , sie funktionieren aber auch noch bei den
anderen Trägerfrequenzen, allerdings mit eingeschränkter Reichweite.
D.h. einen TSOP1740 kannst Du bequem vom Sessel aus mit einer Sony Sircs 
Fernbedienung (40kHz) ansprechen, während du eine 36kHz Fernbedienung 
wahrscheinlich direkt davor halten musst, damit der Empfänger korrekte 
Daten ausspuckt.

Zum Abspeichern: So einfach isses nicht. Du must mindestens mit der 
doppelten Frequenz (Abtasttheorem) der höchsten im Signal vorkommenden 
Frequenz abtasten. Das geht im Fall von Rechtecksignalen theoretisch 
nicht ideal. Ich würde mit ca. der 10 bis 20 mal so schnellen Zeit 
abtasten, wie der kürzeste Abstand zw. zwei Flanken, weil du das Timing 
ja halbwegs korrekt wiedergeben willst.

Zur Ausgabe: Es gibt zwei Möglichkeiten:
a) Du lässt den Controller die Trägerfrequenz (30-40kHz) selber erzeugen
(PWM-Ausgang?) und schaltest sie im Takt deines Datensignals an und aus.
b) Du nimmst einen externen Oszillator (NE 555) und schaltest den mit 
einem Portpin des Controllers im Takt des Datensignals an und aus.

Alles klar?

Gruss
Arvid

PS: Habe diese Woche ein paar TSOP-Module bekommen und werde am WE 
vielleicht ein bisschen damit spielen. Dann kann ich vielleicht noch ein 
paar Tipps aus der Praxis geben.

Autor: Stefan_h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Theoretisch is jetzt alles Klar. Für die praktische Umsetzung heißts 
dann halt : "ausprobieren".

@Arvid: Würd mich freun wenn du was über die Praxis Postest.


Danke für eure Hilfe, lg,

Stefan

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.