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
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.
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.
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
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 :-)
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.
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? ^^
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.
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
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
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.
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