Forum: Mikrocontroller und Digitale Elektronik IR Signal falsch


von Krishan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich arbeite gerade an einem Projekt, wo ich ein Infrarot Signal schicken 
will (bspw. an meinen Fernseher).

Das Ganze soll ueber einen ATmega644PA gesteuert werden unter Verwendung 
der euch sicher bestens bekannten IRSND Library 
(http://www.mikrocontroller.net/articles/IRMP#IRSND_-_Infrarot-Multiprotokoll-Encoder). 
Als IR LED verwende ich im Moment eine Kingbright L-934SF4C.

Allerdings funktioniert es nicht so wie ich will:

Messe ich mit meinem Oszilloskop das ausgesandte Signal an der IR LED, 
dann sieht das ganze perfekt aus (benutzt wird das NEC Protocol; Timings 
& Pegel stimmen).

Zusaetzlich habe ich eine einfache Receiver-Schaltung aufgebaut. Wenn 
ich jetzt mein Signal messe, das bei der Receiver-Schaltung ankommt, 
passt es allerdings nicht mehr mit jenem Signal zusammen, das ich am 
Ausgang der IR LED gemessen habe.

Die Receiver-Schaltung funktioniert aber mit Sicherheit: ein Signal 
einer originalen LG-Fernbedienung kommt wunderschön an.

Ich habe aber leider keinen Ansatz, wo mein Fehler liegen koennte und 
ich waere wirklich sehr dankbar, wenn mir hier jemand einen guten Rat 
geben koennte ..

Anbei findet ihr zwei Dateien:
(1) Die Beschaltung unserer IR LED
(2) Ein Foto vom Oszilloskop mit dem NEC Protocol gemessen an der IR LED

LG Krishan

von Thomas E. (thomase)


Lesenswert?

Krishan schrieb:
> (1) Die Beschaltung unserer IR LED
Nimm dein Photohandy und kontrolliere, ob sie auch wirklich leuchtet.

Krishan schrieb:
> (2) Ein Foto vom Oszilloskop mit dem NEC Protocol gemessen an der IR LED
Und das erwartest du jetzt auch am Empfängerausgang?
Solange 38KHz empfangen werden, steht am Ausgang eine 1.

mfg.

von Krishan (Gast)


Angehängte Dateien:

Lesenswert?

> Nimm dein Photohandy und kontrolliere, ob sie auch wirklich leuchtet.

Funktioniert, habe ich auch vorher schon kontrolliert, nur vergessen es 
zu erwaehnen.

> Und das erwartest du jetzt auch am Empfängerausgang?
> Solange 38KHz empfangen werden, steht am Ausgang eine 1.

Mag sein, dass ich es falsch verstehe, aber ich haette eigentlich schon 
erwartet, dass das, was meine IR LED aussendet, beim Receiver genau so 
ankommt. Nehme ich naemlich meine LG Fernbedienung, bekomme ich beim 
Receiver genau einen NEC Frame, wie es die Fernbedienung (und im Prinzip 
auf mein µC) aussendet.

Ich habe das auch mal mit meinem Oszilloskop festgehalten:
(1) Aufnahme von meinem Signal an der IR LED und am Receiver
(2) Aufnahme eines NEC Frames meiner LG Fernbedienung am Receiver

mfG

von MWS (Gast)


Lesenswert?

Mag sein, dass Dein Oszi das Signal an der LED nicht gescheit darstellt, 
aber da sollte ein mit 36 oder auch 38 kHz moduliertes Signal zu sehen 
sein, statt dessen schaut's aber wie einfache Logikpegel aus. Und ohne 
modulierten Träger kein Empfang.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Krishan schrieb:
> Messe ich mit meinem Oszilloskop das ausgesandte Signal an der IR LED,
> dann sieht das ganze perfekt aus (benutzt wird das NEC Protocol; Timings
> & Pegel stimmen).

Kann man die 38kHz-Modulation auf dem Oszi sehen?

> Zusaetzlich habe ich eine einfache Receiver-Schaltung aufgebaut. Wenn
> ich jetzt mein Signal messe, das bei der Receiver-Schaltung ankommt,
> passt es allerdings nicht mehr mit jenem Signal zusammen, das ich am
> Ausgang der IR LED gemessen habe.

Was für einen Receiver? Einen TSOPxxxx? Was heisst "es passt nicht mehr 
zusammen"? Wo sind denn die Unterschiede? Hängt am TSOP ein µC mit IRMP? 
Wenn ja, was sieht IRMP?

> Die Receiver-Schaltung funktioniert aber mit Sicherheit: ein Signal
> einer originalen LG-Fernbedienung kommt wunderschön an.

Wie siehst Du das? Oszi? Wo dran? Am TSOP-Ausgang?

von Axel S. (a-za-z0-9)


Lesenswert?

Krishan schrieb:

> Messe ich mit meinem Oszilloskop das ausgesandte Signal an der IR LED,
> dann sieht das ganze perfekt aus (benutzt wird das NEC Protocol; Timings
> & Pegel stimmen).
>
> Zusaetzlich habe ich eine einfache Receiver-Schaltung aufgebaut. Wenn
> ich jetzt mein Signal messe, das bei der Receiver-Schaltung ankommt,
> passt es allerdings nicht mehr mit jenem Signal zusammen, das ich am
> Ausgang der IR LED gemessen habe.

> Anbei findet ihr zwei Dateien:
> (1) Die Beschaltung unserer IR LED
> (2) Ein Foto vom Oszilloskop mit dem NEC Protocol gemessen an der IR LED

Ich rate jetzt mal "gemessen an der IR LED" meint "Spannungsverlauf am 
Kollektor von T1 gegen GND". Richtig?

Dann sieht es so aus, als ob die Modulation fehlen würde. Und ohne die 
empfängt der Empfänger natürlich nichts. Vergleichbare Situation: du 
willst einen UKW-Radiosender bauen und legst dazu das verstärkte 
Mikrofon-Signal an die Antenne. Das wird auch nix.


XL

von Krishan (Gast)


Angehängte Dateien:

Lesenswert?

> Kann man die 38kHz-Modulation auf dem Oszi sehen?

Nein, kann man nicht. Inzwischen weisz ich auch, dass das Signal an der 
IR LED nicht dasselbe sein soll, wie am Receiver. An der IR LED fehlen 
in meinem Fall einfach die Bursts. Woran kann das liegen? Als 
main-Funktion verwende ich die mitgelieferte main-Funktion der IRSND 
Library.
Somit sollte ich diese 38kHz Modulation am Eingang der IR LED mit dem 
Oszi erfassen koennen?

> Was für einen Receiver? Einen TSOPxxxx? Was heisst "es passt nicht mehr
> zusammen"? Wo sind denn die Unterschiede? Hängt am TSOP ein µC mit IRMP?
> Wenn ja, was sieht IRMP?

(1) Ja, ich benutze einen TSOP4838.
(2, 3) Das kann man wohl vergessen, ich hatte da einen ganz 
entscheidenden Denkfehler, weil ich geglaubt habe, dass das Signal am 
Eingang der IR LED dasselbe Signal ist, wie das Signal am Ausgang des 
TSOP4838. Aber wie oben bereits erwaehnt, sollte das doch nicht so sein, 
richtig?
(4, 5) Nein. Beschaltung des Receivers siehe Anhang 
(Original-Beschaltung aus dem Datenblatt).

> Wie siehst Du das? Oszi? Wo dran? Am TSOP-Ausgang?

Ja, mit meinem Oszi am TSOP-Ausgang (Pin 1).

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Krishan schrieb:
> Nein, kann man nicht. Inzwischen weisz ich auch, dass das Signal an der
> IR LED nicht dasselbe sein soll, wie am Receiver.

Korrekt, der Receiver filtert die Modulation raus.

> An der IR LED fehlen in meinem Fall einfach die Bursts. Woran kann
> das liegen?

Keine Ahnung. Ich persönlich habe allerdings IRSND noch nicht am 
ATmega644 getestet.

Zeige bitte mal irsndconfig.h - als Anhang.
Der IR-LED-Ansteuer-Transistor hängt an PD5 des ATmega644?

von Krishan (Gast)


Angehängte Dateien:

Lesenswert?

> Zeige bitte mal irsndconfig.h - als Anhang.
> Der IR-LED-Ansteuer-Transistor hängt an PD5 des ATmega644?

(1) Siehe Anhang.
(2) Der Transistor haengt an PD6 (OC2B) des ATmega644PA (ich habe 
gestern leider versehentlich die alte Beschaltung hochgeladen).

von Peter D. (peda)


Lesenswert?

Krishan schrieb:
> der euch sicher bestens bekannten IRSND Library
> (http://www.mikrocontroller.net/articles/IRMP#IRSND...).

Da hätte man aber viel zu tun, wenn man alles kennen müßte, was irgendwo 
mal im Web stand. Vermutlich gibt es auch nicht nur eine einzige Version 
davon.

Es ist ja auch wahnsinnig kompliziert seinen Code als Zip anzuhängen.
Und zwar den exakten compilierbaren Code und nicht irgendwas ähnliches 
oder halbes.


Peter

von Krishan (Gast)


Angehängte Dateien:

Lesenswert?

> Da hätte man aber viel zu tun, wenn man alles kennen müßte, was irgendwo
> mal im Web stand. Vermutlich gibt es auch nicht nur eine einzige Version
> davon.

Da stimme ich dir schon zu, ich bin allerdings davon ausgegangen, dass 
es hier im Forum eventuell doch einen gewissen Bekanntheitsgrad hat.
Ich verwende die Version aus dem genannten Artikel (Version 2.3.1, Stand 
vom 26.10.2012).

> Es ist ja auch wahnsinnig kompliziert seinen Code als Zip anzuhängen.
> Und zwar den exakten compilierbaren Code und nicht irgendwas ähnliches
> oder halbes.

Siehe Anhang (ich verwende AVR Studio 6).

mfG

von MWS (Gast)


Lesenswert?

Kommentiere #define F_CPU 16000000UL in IRSND_Demo.c aus.
Erstelle unter Project Properties --> AVR/GNU C Compiler --> Symbols den 
Eintrag: F_CPU=16000000UL

Nach erneutem Compilieren sollte die Trägerfrequenz auf etwas über 38kHz 
sein. Wird das nicht wie oben beschrieben gemacht, so beträgt die 
Trägerfrequenz 615kHz, das sah man nur auf Deinem Oszibild nicht mehr. 
Hättest reinzoomen müssen, dann wär's Dir aufgefallen.

von Krishan (Gast)


Lesenswert?

@MWS: Meine Hochachtung, das hat das Problem behoben - Danke sehr!

Natuerlich auch danke an alle anderen fuer ihre Zeit und Mithilfe!

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

MWS schrieb:
> Kommentiere #define F_CPU 16000000UL in IRSND_Demo.c aus.
> Erstelle unter Project Properties --> AVR/GNU C Compiler --> Symbols den
> Eintrag: F_CPU=16000000UL

Ich frage mich nur, wie er geschafft hat, irsnd.c zu kompilieren.

Um so etwas abzufangen (fehlendes F_CPU im Projekt), hatte ich nämlich 
in irsnd.c explizit eingebaut:

#ifndef F_CPU
#  error F_CPU unkown
#endif

Und das steht in seinem angefügten Source auch so drin.

Gruß,

Frank

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
Noch kein Account? Hier anmelden.