Forum: Mikrocontroller und Digitale Elektronik IR Receiver / IR Fernbedienung


von Josia A. (Firma: Zumtobel) (josia)


Lesenswert?

Hallo Leute,

Ich bin im moment an meinem Abschluss Projekt für meine Lehre dran...Ich 
baue einen Vierfüßer der von einer Infrarot Fernbedienung (Selbstgebaut) 
gesteuert werden soll.

Nun bin ich an dem Teil mit der IR Fernbedienung / IR Receiver dran. 
Mein Problem ist das es ziemlich komplex ist und ich das ganze nicht 
wirklich verstehe wie ich diese verschiedene Pulse sende und dann 
vorallem einlese.

Meine Frage ist jetzt:
Kann ich über die IR-LED (Emitter) ein PWM senden und dieses PWM Signal 
dann mit einem IR-Receiver Empfangen dieses Signal dann an einem 
AD-Wandler einlesen und jeweils für die verschiedenen Spannungen 0-5V 
zb.:

0V-1V = Taste 1 (vorwärtslaufen)
1V-2V = Taste 2 (Rückwärtslaufen)....

Die Zweite Idee die ich hatte war das ich Jeweils verschieden viele 
Pulse über die IR LED Sende und dann an einem normal io Port einlese und 
dann zähle wie oft der Puls gekommen ist und daher dann bestimme was für 
eine Taste gedrückt wurde z.B:

1 High = Taste 1
2 High = Taste 2.....

Die Zweite Idee habe ich schon ausprobiert mit einer blinkenden IR LED 
und dann das Ausgangssignal am IR receiver mit dem Oszi zu messen aber 
da tut sich nix.

von Oliver S. (oliverso)


Lesenswert?

Ein paar Grundlagen zum Thema könntest du hier finden:

https://www.mikrocontroller.net/articles/IRMP

Oliver

von Josia A. (Firma: Zumtobel) (josia)


Lesenswert?

Ich habe diese Library schon in mein Programm übertragen aber ich 
bekomme Fehlermeldungen...: undefined reference to 'irmp_ISR'
                    undefined reference to 'irmp_init'
                    undefined reference to 'irmp_get_data'

von Peter D. (peda)


Lesenswert?

Über IR-Codes haben sich schon lange vor Dir Leute Gedanken gemacht, 
nimm also einen bewährten.
Z.B. RC-5 ist gut dokumentiert, zuverlässig und einfach zu 
programmieren.

https://www.sbprojects.net/knowledge/ir/rc5.php

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Josia A. schrieb:
> habe diese Library schon in mein Programm übertragen
Jetzt ist auf einmal auch ein unbekannter µC im Spiel.
> aber ich bekomme Fehlermeldungen...
Ich denke, dir ist klar, dass es zig µC-Hersteller mit zigtausenden µC 
mit zig verschiedenen Toolchains gibt. Deshalb ist es interessant zu 
wiseen:
Welches Programm aus welcher Toolchain für welche Zielplattform mit 
welchem Sourcecode gibt diese Fehler aus?

Josia A. schrieb:
> Die Zweite Idee habe ich schon ausprobiert mit einer blinkenden IR LED
> und dann das Ausgangssignal am IR receiver
Am geheimen IR-Receiver...
Hast du mal das Datenblatt dieses Bauteils angesehen. Evtl. reagiert der 
wie viele andere nur auf moduliertes IR-Licht mit einer bestimmten 
Modulationsfrequenz im Bereich um 35-40kHz:

https://www.reichelt.de/ir-empfaenger-module-38khz-90-side-view-tsop-4838-p158403.html

https://www.reichelt.de/ir-empfaenger-module-36khz-90-side-view-tsop-31236-p107208.html

> von einer Infrarot Fernbedienung (Selbstgebaut)
Warum baust du die selber? Nimm doch eine aus dem üblichen 
Elektroschrott, die sowieso nur herumliegt. Dafür ist dann irmp gut.

> Mein Problem ist das es ziemlich komplex ist
Eigentlich nicht. Du willst nur das Rad (=IR-Kommunikation) neu 
erfinden. Und irmp kann dein eigenes Protokoll sicher nicht auf Anhieb 
decodieren.

> und ich das ganze nicht wirklich verstehe
Was ich mir in solchen Fällen immer denke:
Warum zur Hölle nimmt man etwas als Abschlussprojekt, von dem man 
absolut nichts versteht?

Wenn du das wirklich verstehen willst, dann sieh dir das an: 
https://de.wikipedia.org/wiki/RC-5

So macht ein Großteil der restlichen Welt die Übertragung von 
Fernbedienung zum Gerät. Und wenn du als µC einen Arduino nimmst, dann 
findest du dafür einige Bibliotheken, die RC-5 decodieren können:
https://www.google.com/search?q=arduino+rc-5
https://www.elektronik-labor.de/Arduino/RC5.html
https://simple-circuit.com/arduino-rc5-ir-remote-control-decoder/

: Bearbeitet durch Moderator
von Olaf (Gast)


Lesenswert?

> Nun bin ich an dem Teil mit der IR Fernbedienung / IR Receiver dran.

Es ist schon nicht ganz einfach fuer einen Anfaenger eine Seite
zu bauen/programmieren, beide auf einmal ist vielleicht etwas viel.

Also nimm im zweifel eine vorhandene FB und dekodiere die.

Wobei das idealerweise eine von einem bekannten Hersteller sein sollte
damit du etwas Doku dazu im Netz findest.

Olaf

von Günter Lenz (Gast)


Lesenswert?

von Josia A. schrieb:
>und ich das ganze nicht
>wirklich verstehe wie ich diese verschiedene Pulse sende und dann
>vorallem einlese.

Es ist bei IR Fernbedienungen üblich, das die Impulse nicht
direkt gesendet werden sondern auf eine Trägerfrequenz
aufmoduliert werden. So lassen sich die Signale beim Empfang
leichter selektiv verstärken. Damit ereicht man größere
Reichweiten und unempfindlichkeit gegenüber Fremdlicht.
Wie nun die Daten in den Impulsen codiert werden, da gibt
es jede Menge verschiedener Möglichkeiten. Oder du denkst
dir selbst was aus.

Ein Beispiel von vielen mit dem IC U807 oder SAB3021
Die Trägerfrequenz ist da 35,71kHz. Diese Frequenz
wird mit den Datenimpulsen an- und ausgeschaltet.

https://hjs.lima-city.de/DDR/ds/SAB3021.pdf

https://www.tvsat.com.pl/pdf/u/u807_rft.pdf

https://www-user.tu-chemnitz.de/~heha/basteln/Konsumg%C3%BCter/DDR-Halbleiter/u807.gif

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Josia A. schrieb:
> Ich habe diese Library schon in mein Programm übertragen aber ich
> bekomme Fehlermeldungen...: undefined reference to 'irmp_ISR'
> undefined reference to 'irmp_init'
> undefined reference to 'irmp_get_data'

Da hast Du vergessen, irmp.c zu Deinem Projekt hinzuzufügen.

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.