Forum: Mikrocontroller und Digitale Elektronik IR Auswertung


von roland k. (rolandooos)


Lesenswert?

Hallo zusammen,
war schon länger nicht mehr aktiv hier aber hab gleich an euch gedacht!
und zwar geht es um eine Auswertung eines IR Senders mit Hilfe eines IR 
Empfängers. Ich möchte dem Controller (evtl. LPC) ein IR Signal von 
einer Fernbedienung vom TV einlernen !

Das heisst ich würde dem Projekt einen kleinen schalter spendieren 
welcher den Controller in den Programmiermodus schickt und dann das IR 
Signal speichert. Danach würde ich den schalter gerne in den 
Betriebsmodus schalten und dann beim Empfang der gespeicherten Taste 
einen Mosfet schalten!

Einfache Sache, jedoch weiss ich nicht wie ich das mit dem Einlernen 
machen soll. kann mir da jemand evtl helfen oder tipps geben?



Gruss Roland

von Karl H. (kbuchegg)


Lesenswert?

Projekt
IRMP

Einlernen:
Auf dem µC einen Taster drücken. Den IRMP Code empfangen lassen und dann 
was der liefert im EEPROM speichern und für die restliche Auswertung mit 
der Aktion verknüpfen.

von roland k. (rolandooos)


Lesenswert?

klingt logisch,
hab hier noch einen LPC 936 µC von NXP.
kann ich diesen dafür verwenden?

von Karl H. (kbuchegg)


Lesenswert?

roland kreier schrieb:
> klingt logisch,
> hab hier noch einen LPC 936 µC von NXP.
> kann ich diesen dafür verwenden?

Nur wenn du dir den IRMP Code dafür umschreibst. Der ist, wie der meiste 
Code hier auf mc.net für AVR geschrieben.
Ist aber nicht so schlimm. Hardware abhängig ist eigentlich nur der 
Einsatz des Timers und wie man die zugehörige ISR vereinbart. Der Rest 
sollte eigentlich keine großen Probleme machen.

von roland k. (rolandooos)


Lesenswert?

Karl Heinz Buchegger schrieb:
> roland kreier schrieb:
>> klingt logisch,
>> hab hier noch einen LPC 936 µC von NXP.
>> kann ich diesen dafür verwenden?
>
> Nur wenn du dir den IRMP Code dafür umschreibst. Der ist, wie der meiste
> Code hier auf mc.net für AVR geschrieben.
> Ist aber nicht so schlimm. Hardware abhängig ist eigentlich nur der
> Einsatz des Timers und wie man die zugehörige ISR vereinbart. Der Rest
> sollte eigentlich keine großen Probleme machen.

Sorry entweder steh ich aufem schlauch oder ich verstehs echt nicht so 
genau.
Für was brauche ich die IR codes?
ich will eigentlich nur einen code einlesen (egal welche Fernbedienung 
und welche Taste) und damit ein relai schalten zb...


Gruss

von Karl H. (kbuchegg)


Lesenswert?

roland kreier schrieb:

>
> Sorry entweder steh ich aufem schlauch oder ich verstehs echt nicht so
> genau.
> Für was brauche ich die IR codes?

Da wusste ich noch nicht, dass du definitiv keinen AVR hast :-)

Mit dem IRMP COde auf einem AVR ist deine Problemstellung eine Sache auf 
15 Minuten Arbeit, die sich im wesentlichen auf 2 Vergleiche und ein 
bischen EEPROM Speichern/Löschen beschränkt. Denn den schwierigen Teil 
hat der IRMP Code schon erledigt.

> ich will eigentlich nur einen code einlesen (egal welche Fernbedienung
> und welche Taste) und damit ein relai schalten zb...

D.h. du zeichnest das zeitliche Muster auf, welches beim Drücken einer 
Taste kommt. Empfängst du danach wieder dieses Muster, dann schaltest du 
das Relais.

Ja, ok. Kann man auch machen. Nur bis das komplett und fehlerfrei läuft, 
ein auf der Fernbedienung 'eingeschlafener' Benutzer nicht zu 
Dauerflattern auf dem Relais führt, die Musterauswertung auf die Pausen 
synchronisiert ist, Störpulse den Erkennungsmechanismus nicht ausser 
Tritt bringen ..... das dauert ja auch seine Entwicklungszeit :-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

roland kreier schrieb:
> ich will eigentlich nur einen code einlesen (egal welche Fernbedienung
> und welche Taste) und damit ein relai schalten zb...

Dann reicht es, herauszufinden, ob der TSOP an dem Eingang deines µC ein 
paar mal hin und her "wackelt" - fertig.

Da Leuchtstofflampen etc. auch Störsignale erzeugen und der TSOP 
manchmal darauf reagieren kann, solltest Du z.B. prüfen, ob > 5-10 
Flankenwechsel innerhalb 50msec auftraten. Dann kannst Du ziemlich 
sicher sein, dass die Signale von einer x-beliebigen Fernbedienung 
kamen.

von roland k. (rolandooos)


Lesenswert?

Ich hab halt bis jetzt nur Erfahrungen mit dem LPC 936 gemacht.
Wenn es nicht all zu schwer ist würde ich gerne auf einen Atmel 
umsteigen !

Ja ich will im Endefekt ein IR Signal vom Benutzer Einlesen lassen, dann 
im EEPromm ablegen und dann im Betriebsmodus immer mit dem Ist und 
Soll(EEPROM) Signal Vergleichen, wenn dies 1 entspricht soll getooglet 
werden!

Wenn Licht an, Licht aus, wenn Licht aus Licht an. müsste XNOR sein..

Mit dem LPC hab ich schon ein Projekt erfolgreich durchgeführt.
Ich weiss wie er Arbeitet und kenne die SFRs und habe einen Emulator zum 
Programmieren zuhause.

Ich frage mich welches die schnellere Methode ist? ^^

von Karl H. (kbuchegg)


Lesenswert?

roland kreier schrieb:

> Ja ich will im Endefekt ein IR Signal vom Benutzer Einlesen lassen, dann
> im EEPromm ablegen und dann im Betriebsmodus immer mit dem Ist und
> Soll(EEPROM) Signal Vergleichen, wenn dies 1 entspricht soll getooglet
> werden!

Du kannst nicht 'ein Signal' im EEPROM ablegen. Ein 'Signal' hat keine 
physikalische Realität. Du musst dich schon auf etwas einschiessen, was 
du auch messen kannst. Zb. die Zeitdauer von der steigenden Flanke des 
Pulses bis zur fallenden Flanke. Oder von der steigenden Flanke bis zu 
nächsten steigenden Flanke. Oder umgekehrt. Oder die Spannungsamplitude. 
Oder ... D.h. du musst von deinem 'Signal' wissen, welches die für deine 
Anwendung relevante physikalische Eigenschaft ist. Und dann muss man 
überlegen, wie man die messen kann.

Aber ein Signal ist ein hypotetisches Konzept. Ein Signal kann auch das 
in die Luft halten einer Fahne sein.

> Wenn Licht an, Licht aus, wenn Licht aus Licht an. müsste XNOR sein..

Das ist dein geringstes Problem. Das Relais danach anzusteuern macht 
vielleicht 2% vom Gesamtprojekt aus.

> Ich frage mich welches die schnellere Methode ist? ^^

Wenn ich mir in meiner Zeit als Lernender diese Frage gestellt habe, 
dann hab ich es einfach ausprobiert :-)
Und Boy, meiner Entwicklung hat das immer gut getan. Denn es gibt nur 
noch eines, was fast so wichtig wie Wissen ist: Übung, Übung, Übung. Und 
auch mal zulassen, dass man sich selber in die Ecke stellt. Auch aus 
Fehlschlägen lernt man.

von roland k. (rolandooos)


Lesenswert?

Karl Heinz Buchegger schrieb:
> roland kreier schrieb:
>
>> Ja ich will im Endefekt ein IR Signal vom Benutzer Einlesen lassen, dann
>> im EEPromm ablegen und dann im Betriebsmodus immer mit dem Ist und
>> Soll(EEPROM) Signal Vergleichen, wenn dies 1 entspricht soll getooglet
>> werden!
>
> Du kannst nicht 'ein Signal' im EEPROM ablegen. Ein 'Signal' hat keine
> physikalische Realität. Du musst dich schon auf etwas einschiessen, was
> du auch messen kannst. Zb. die Zeitdauer von der steigenden Flanke des
> Pulses bis zur fallenden Flanke. Oder von der steigenden Flanke bis zu
> nächsten steigenden Flanke. Oder umgekehrt. Oder die Spannungsamplitude.
> Oder ... D.h. du musst von deinem 'Signal' wissen, welches die für deine
> Anwendung relevante physikalische Eigenschaft ist. Und dann muss man
> überlegen, wie man die messen kann.
>
> Aber ein Signal ist ein hypotetisches Konzept. Ein Signal kann auch das
> in die Luft halten einer Fahne sein.
>
>> Wenn Licht an, Licht aus, wenn Licht aus Licht an. müsste XNOR sein..
>
> Das ist dein geringstes Problem. Das Relais danach anzusteuern macht
> vielleicht 2% vom Gesamtprojekt aus.
>
>> Ich frage mich welches die schnellere Methode ist? ^^
>
> Wenn ich mir in meiner Zeit als Lernender diese Frage gestellt habe,
> dann hab ich es einfach ausprobiert :-)
> Und Boy, meiner Entwicklung hat das immer gut getan. Denn es gibt nur
> noch eines, was fast so wichtig wie Wissen ist: Übung, Übung, Übung. Und
> auch mal zulassen, dass man sich selber in die Ecke stellt. Auch aus
> Fehlschlägen lernt man.


Das heisst ich muss die low und high Zeiten im EEPROM speichern und nach 
diesem Muster abfragen.
Ich denk ich versuch es zuerst mit dem LPC und dann werd ich mich beim 
nächsten Projekt an die hier im Forum beliebten Atmels machen.

was benötige ich für die Atmel Geschichte für ein Programmer und was für 
eine software?


Danke für die Infos an alle

von Harald W. (wilhelms)


Lesenswert?

roland kreier schrieb:

> Das heisst ich muss die low und high Zeiten im EEPROM speichern und nach
> diesem Muster abfragen.

...und Dir überlegen, welche Toleranzen Du dabei zulässt.
Gruss
Harald

von Karl H. (kbuchegg)


Lesenswert?

roland kreier schrieb:

> Das heisst ich muss die low und high Zeiten im EEPROM speichern und nach
> diesem Muster abfragen.

Du musst zuallerst mal Doku darüber lesen, was eigentlich die 
Fernbedienung mit dem Lichtstrahl macht! Denn du musst wissen, wie die 
das was von der FB kommt von dem unterscheiden kannst, was du 
tiefstehende Sonne so alles in deinem Empfänger anrichtet. Erst mal muss 
man wissen, wie der Input ('das Signal') eigentlich aussieht, das es zu 
erkennen gilt. Verlass dich nicht darauf, dass ich dir hier sage 
'Pulsdauer'. Finde es selbst heraus!

Aktuelles Beispiel:
Mein Fernseher. Wenn ich den nachts anmache, kann es sein, dass er einen 
Befehl ausführt, den ich über die Fernbedienung nie gegeben habe. Ich 
habe den Verdacht, dass er auf die Energiesparlampe reagiert. Da das 
aber der Befehl ist, der von Mono auf Stereo umschaltet (und er immer 
auf Stereo schaltet), ist mir das relativ egal und dass da ab und zu die 
Befehlsanzeige auf dem Schirm aufleuchtet, ist mir wurscht.

> was benötige ich für die Atmel Geschichte für ein Programmer und was für
> eine software?

Lass dich nicht davon abschrecken, dass es sich um das Assembler 
Tutorial handelt.
AVR-Tutorial
Die ersten Kapitel gehen auf die Hardware ein.

von roland k. (rolandooos)


Lesenswert?

ich weiss nur das ich das timing unterscheiden kann und das will ich ja 
machen. Es geht darum das ich über die Fernbedienung die 5V für meine 
DVBT Antenne zuschalten möchte um so vom DVBC auf DVBT umschalten zu 
können
sprich DVBT = 5 V und mein TV bringt dies nicht aus dem tuner raus!
Und jedesmal aufstehen und die Einspeiseweiche einstecken nervt auf 
dauer.
Also bis jetzt hat mein Receiber bei tags das selbe gemacht wie Nachts 
wenn ich zb die Menütaste gedrückt hab, allerdings hab ich mich noch nie 
damit beschäftigt, naja scheint softwaretechnisch doch nicht so einfach 
zu sein

Gruss

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.