Guten Morgen, wenn man einen IR-Empfänger aus einem Gerät rauslötet, diesen an einen uC, Arduino, anschließt, kann man dann über einen Ausgangs-Pin des uC das Signal an das Gerät senden und diesem vortäuschen, es hätte noch den Empfänger?
Kann man. Aber wenn du so fragst kannst DU es NICHT.
Ja kann man. Wobei der Empfänger bei Inaktivität einfach nur ständig High oder Low Pegel liefert. Das könnte als auch ein Stück Draht simulieren. Oder willst du mit dem Mikrocontroller ein Fernsteuer-Signal simulieren? Das kann man mit kleinen Mikrocontrollern (also allen Arduino Modellen) durchaus machen.
Ja, mit dem passenden Wissen. Du kannst den IR-Empfänger auch abkleben, einen separaten Empfänger an den Arduino bauen und nur mit Deinem Arduino-Sender "reinleuchten". Besser wird Dir geholfen, wenn DU etwas detaillierter erklärst, was Du vorhast.
Baslter schrieb: > wenn man einen IR-Empfänger aus einem Gerät rauslötet, diesen an einen > uC, Arduino, anschließt, kann man dann über einen Ausgangs-Pin des uC > das Signal an das Gerät senden und diesem vortäuschen, es hätte noch den > Empfänger? Was willst Du denn erreichen? Alles 1:1 an das Gerät weiterleiten? Oder willst Du mit dem µC die IR-Befehle abfangen und lediglich bestimmte Frames an das Gerät weiterreichen? Oder willst Du nur "mithorchen"? Dann würde ich den IR-Empfänger (meist ein TSOPxxxxx) im Gerät belassen und an den µC einen eigenen IR-Empfänger anschließen. Dann kannst Du ohne Eingriff in das Gerät die IR-Frames empfangen und auswerten. Schau Dir dazu mal IRMP an. Ein paar Infos über den Sinn und Zweck wären hier durchaus hilfreich.
Vielen Dank für eure Antworten. Ja Frank, ich kanns, Arduino und IR sind auch für Noobs recht schnell und einfach zu verstehen, nur habe ich was bestimmtes vor und das Gerät, welches ich verwenden will, ist das einzige, dass ich für das Experiment nutzen würde, will aber nicht unnötig an der Platine rumbraten. Sonst kriege ich immer Mecker, weil ich Romane schreiben ;P Aber klar, ich teile sehr gerne mit euch, was ich vorhabe: Ich will eines dieser Bluetooth/SD-Karten/USB Mp3-Player Module in meine Anlage einbauen, da ich fast ausschließlich Musik über Handy höre, ist es schon echt lästig immer mit dem Aux-Kabel da rumzuhantieren, Bluetooth bietet sich da nun perfekt an. Gleichzeitig bietet sich mir die Möglichkeit den einen Aux-Anschluss zu vermehren, also das BT-Modul soll einer der Kanäle sein, da ich einen kaputten Audio-Receiver bekommen habe und dieser ein paar echt schöne Relais für genau diesen Zweck hat. Die Aux-Kanäle lassen sich per Schieberegister ganz einfach umschalten, der Teil ist fertig, aber das muss fernbedienbar sein und das BT-Dingens hat auch eine Fernbedienung, also dachte ich mir, ich fange das Signal der original FB der Anlage mit nem Attiny ab und schicke es anders codiert an das BT-Modul, die FB sendet auch im Aux-Modus Signale für Play, Pause etc., und mit der Aux-Taste schalte ich die Modi entsprechend um, auch mit der Anlage muss ich das machen, wobei da fast alle Signale 1:1 weitergeleitet werden und nur die Aux-Taste schaltet dann die Modi um, denke der Arduino-Teil ist auch für mich Anfänger ziemlich einfach, dachte an eine Switch funktion und jedes Mal, wenn die Aux-Taste sendet, wird der Case ++ gemacht, sorry, die Wortwahl wäre so oder so übel, geworden, Anfänger halt, daher hab ichs mal gekürzt :)
Glaub die letzten paar Worte könnten zur Verwirrung führen, die Switch-Funktion dient dazu die original Aux-Modi der Anlage nutzen zu können, also die ersten zwei Mal drücken wird jeweil das Signal der Anlage 1:1 an diese weitergegeben, Case 0 und 1, in Case 2 werden die Play, Pause etc. Signale an das BT-Modul gesendet und dann immer nur ein Impuls an das Schieberegister.
Baslter schrieb: > Sonst kriege ich immer Mecker, weil ich Romane schreiben ;P Alles in Maßen. Sätze, die keine 10 Kommas enthalten und hier und da ein Absatz würden die Lesbarkeit aber deutlich verbessern. Zum Thema: Du willst also einige Knöpfe auf der FB deines Receivers zweckentfremden und damit deinen BT-Empfänger ansteuern? Wie verhinderst du, dass auch der Receiver auf die Eingaben reagiert, die für das BT-Modul bestimmt sind?
> Bluetooth bietet sich da nun perfekt an. Dachte ich auch mal. Bis mir klar wurde, dass die Tonqualität mies ist, die Reichweite kaum länger ist als mein 2m Kabel und dass bei mir alles was Funk verwendet häufig ausfällt. Aber mach nur. Prinzipiell funktioniert es ja. Was du da vorhast ist ganz sicher mit einem AVR machbar.
Baslter schrieb: > ich fange das Signal der original FB der Anlage mit nem Attiny ab und > schicke es anders codiert an das BT-Modul, Wenn ich es recht verstanden habe: Wenn Du die FB auf AUX umstellst, was passiert dann? Schaltet die FB dann intern selbst andere Codes für die entsprechenden Tasten oder schaltet Deine Anlage dann einfach auf taub, bis Du den Aux-Modus wieder abstellst? Wenn ersteres der Fall ist, wovon ich stark ausgehe, brauchst Du den Empfänger der Anlage überhaupt nicht anzutasten, sondern kannst einen weiteren TSOP als IR-Empfänger anbringen. Wenn Du dann auf dem AVR IRMP installierst, ist das Mapping der Codes auf andere sehr einfach und schon mehrfach erprobt. IRMP wurde zwar auch Arduino portiert, jedoch würde ich dazu raten, IRMP besser direkt ohne Arduino-Laufzeitumgebung auf dem AVR zu verwenden. Um IRMP und auch IRSND in der Arduino-Laufzeitumgebung einzusetzen, ist Insider-Wissen nötig, welches Du als Anfänger nicht unbedingt hast. Das liegt zum Beispiel daran, dass das Arduino-Laufzeitsystem bestimmte Timer selbst verwendet und diese deshalb für die eigentliche Anwendung nur noch mit bestimmten Tricks verwendbar sind - falls überhaupt. Der Code der Hauptschleife könnte dann so aussehen:
1 | IRMP_DATA irmp_data; |
2 | |
3 | while (1) |
4 | {
|
5 | if (irmp_get_data (&irmp_data) && |
6 | irmp_data.protocol == PROTOCOL_OF_ORIGINAL_REMOTE_CONTROL && |
7 | irmp_data.address == ADDRESS_OF_ORIGINAL_REMOTE_CONTROL) |
8 | {
|
9 | switch (irmp_data.command) |
10 | {
|
11 | case PLAY_OF_ORIGINAL_REMOTE_CONTROL: |
12 | irmp_data.protocol = PROTOCOL_OF_AUX_MODULE; |
13 | irmp_data.address = ADDRESS_OF_AUX_MODULE; |
14 | irmp_data.command = PLAY_OF_AUX_MODULE; |
15 | irmp_data.flags = 0; |
16 | irsnd_data (&irmp_data, 0); |
17 | break; |
18 | // more IR commands here
|
19 | }
|
20 | }
|
21 | }
|
Das ist natürlich nur eine Skizze. Die oben angegebenen großgeschriebenen Konstanten kann man mit IRMP alle empirsch ermitteln und dann per #define dann entsprechend definieren. Wenn Du allerdings auf IRMP verzichten willst, weil Du unbedingt Arduino als Plattform einsetzen möchtest, könnte der Weg zum Ziel ziemlich steinig werden. Denn oft ist es mit dem simplen Recording von IR-Frames nicht getan und man muss den Kontext kennen, z.B. wenn die IR-Fernbedienung bestimmte Repeat-Frames sendet, z.B. für "Volume +". Oft kann man diese Repeat-Frames nicht 1:1 in das andere Protokoll übersetzen, sondern muss den Kontext kennen: "Das letzte IR-Kommando vor dem Repeat-Frame war Volume +, deshalb muss ich jetzt im Zielprotokoll Volume + senden". Genau dieses nimmt Dir IRMP ab, da es die Codes inhaltlich auswertet und nicht stupide aufzeichnet.
:
Bearbeitet durch Moderator
Typ schrieb: > Du willst also einige Knöpfe auf der FB deines Receivers zweckentfremden > und damit deinen BT-Empfänger ansteuern? > > Wie verhinderst du, dass auch der Receiver auf die Eingaben reagiert, > die für das BT-Modul bestimmt sind? Unabhängig von diesen Einschränkugen, die noch abgeklärt werden müssten, wäre es da wirklich das Beste, einen zweiten IR-Empfänger für die Receiver-Fernbedienung an den Ardinoeingang zu klemmen.
Wenn du auf Nummer Sicher gehen willst, kannst du natürlich mit dem Arduino, einem Empfänger-IC und einer IR-Diode einen Infrarotrepeater basteln. Wenn die IR-Diode auf das Empfänger-IC der Anlage gerichtet ist und du das optisch isolierst, hast du dir so quasi einen Optokoppler gebastelt und ersparst dir das Löten an der Platine komplett. Und auch allerlei andere Effekte, die u.U. stören könnten. Vom Code wird das, dank passender .h auch nicht komplizierter.
@Frank M. Also ich dachte an die IRremote bibliothek, die Signale "raw" auslesen und diese dann an die Ausgangspins senden. Bin echt noch sehr weit am Anfang, sowas ist für mich zur Zeit noch pures Chaos von Zeichen, fast wie meine Texte ;P Link ist aber gespeichert und ich gucks mir nochmal genauer an. Weiterhin ist der Plan nur einen Empfänger am Arduino zu verwenden und die beiden von der Anlage und dem Modul durch die Ausgangspins zu ersetzen. Im Case 0 wird vom Empfängr-Pin gelesen, das Signal der Aux-Taste, und direkt an den Anlage-Pin weitergeleitet, im Case 1 passiert dasselbe, weil nur der Anlagen -interne Aux-Modus umgeschaltet wird, im Case 2 wird das Schieberegister ein Mal gepulst, das schaltet das BT-Modul ein und es werden Lautstärke-, Play-, Pause- etc. und Aux-Tasten gesendet und zu Codes des Moduls geändert, da die Anlage selbst auf Aux steht, wird der CD-Wechsler oder was anderes dadurch nicht bedient, erst, wenn man auf den entsprechenden Modus umschaltet. In Cases 3-5 werden nur die Lautstärke- und die Aux-Taste an die Anlage weitergeleitet. Im letzten Fall wird das Schieberegister noch zurück gesetzt.
Ich würde die Koppelung zwischen Arduino und Stereoanlage lieber optisch machen (mit den bereits vorhandenen IR Empfängern). Denn wenn du die Masse vom Arduino mit der Masse der Anlage verbindest, stehen die Chancen sehr hoch, dass du Dir damit eine Brummschleife einhandelst.
Stefan U. schrieb: > Denn wenn du die Masse vom Arduino mit der Masse der Anlage verbindest, ...kann es eine ganze Masse Probleme geben. :-)
Ja, ihr habt alle recht, denke die "Optokoppler-Idee" ist doch die beste, ist ja im Grunde dasselbe, nur noch einfacher und sauberer und wenn ich dann auch feststelle, dass mit die Tonqualität über BT nicht gefällt, kann ich es einfach alles rausruppen und meine hässlich schöne Philips FW-C700 bleibt original. Und das geht definitiv mit der IRremote Library. Hat sich erst irgendwie nach Pfusch angefühlt, da LED vor die Empänger zu hängen, aber wenn ich mir das nochmal überlege ist es eher Pfusch an den Originalteilen zu löten, wenn es sich auch vermeiden lässt. Hab auch ein paar 3 mm IR-Led, ist alles ordentlich machbar. Aber dennoch gut zu wissen, dass die ursprüngliche Idee funktioniert. Vielen Dank euch allen, wie immer die richtigen Denkanstöße und Infos :) Und ein extra Vielen Dank an Stefan M., auch wenn ich im Moment kaum was davon checke, aber mit Sicherheit würde ich irgendwann nach so einer Lösung suchen und zich verschiedene Ansätze finden, aber nicht genau das, was sicher funktioniert.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.