IR Sender

Hi, ich habe versucht mit dem Arduino Mega meinen TV anzuschalten. Die IR-Led im Kit war defekt, der Mitgelieferte Empfänger hat von ihr nie ein Signal empfangen. Also habe ich eine Fernbedienung, die ich nicht mehr brauche, zerlegt und die IR-Led abgelötet. (War ne blaue). Der IR-Empfänger empfängt das Signal. Hab mir diese Library heruntergeladen: https://github.com/shirriff/Arduino-IRremote und das Beispielprojekt IRrecord geöffnet. Dann hab ich das Signal der TV Fernbedienung aufgenommen, klappt bis dahin alles perfekt. Beim Senden allerdings will der Sketch nicht so wie ich will, die IR-Led sendet einfach nichts. Habe den Empfänger während des sendens an eine Led angeschlossen, nichts passiert. Bei der Fernbedienung blinkt die Led. Die IR-Led hat einen 100-Ohm Vorwiderstand und ist wie im Sketch beschrieben an Pin 3 angeschlossen. MfG apple877

Siehst Du mit der Händykamera die IR LED leuchten/blinken? Grüße Uwe

apple877: Die IR-Led hat einen 100-Ohm Vorwiderstand und ist wie im Sketch beschrieben an Pin 3 angeschlossen.

Hallo,

eine LED mit 100 Ohm-Vorwiderstand bedeutet, dass Du 50mA aus Deinem Arduino-Pin ziehen willst. Das ist zuviel. Du solltest irgendwas unter oder bis 20mA als Maximum vorsehen.

Angenommen, Deine Schaltung mit der LED ist richtig aufgebaut, dann kann es durchaus möglich sein, dass durch den hohen Strom, den Du haben willst, die Spannung am Pin einbricht und dadurch die LED nicht mehr hell genug leuchtet.

Wenn Du eine IR-LED betreiben willst, solltest Du eine kleine Verstärkerschaltung aufbauen, damit die LED genug Strom bekommt. Hier http://www.meinduino.de/ir_sender.shtml habe ich eine Beispielschaltung bestehend aus einem Transistor, zwei Widerständen und der LED (der erste Schaltplan im Artikel). Statt an Pin 9, wie in meinem Beispiel, kannst Du das gelbe Kabel an den von Dir gewünschten Pin anschließen.

Wenn du das aufgebaut hast, benutze einmal, wie uwefed beschrieben hat, Dein Handy und schau mit der Kamera ob die LED leuchtet. Dann sollte der Empfänger sie auch sehen.

Gruß, Ralf

Nein, wenn die LED an pin 3 angeschlossen ist sehe ich sie nicht blinken. Ich sehe sie aber auch nicht blinken wenn ich sie an 5V halte, da Empfängt allerdings der Empfänger etwas bei pin 3 garnicht. Ich habe den Ausgang vom Empfänger an eine LED angeschlossen damit ich sehe ob er was Empfängt. Durch meine Handykamera sehe ich leider nicht ob die IR_LED blinkt.

@Ralf Ich habe leider noch keine Transistoren ich muss die ganzen Bauteile erstmal bei reichelt bestellen. Haber nur die paar Sachen aus dem Funduino Starterkit, eigentlich sollte da einer dabei sein, ist aber leider nicht so.

Über Pin 3 kommt kein Strom in dem Beispielsketch. Wo wird da denn festgelegt dass es Pin 3 ist?

Grüße Noah

apple877: Nein, wenn die LED an pin 3 angeschlossen ist sehe ich sie nicht blinken. Ich sehe sie aber auch nicht blinken wenn ich sie an 5V halte,

Dann kann sie ja auch nicht blinken. Sie blinkt nur, wenn sie an- und ausgeschaltet wird.

apple877: @Ralf Ich habe leider noch keine Transistoren ich muss die ganzen Bauteile erstmal bei reichelt bestellen.

Ich verstehe Dein Problem, aber das ändert nichts daran, dass 50mA (ich habe übrigens oben den Spannungsabfall an der LED vergessen, es sind nur ca. 35mA) Strom zuviel für den Arduino ist. Dann musst du den Vorwiderstand vergrößern oder auf den Transistor warten.

Wenn Du testen willst, ob die LED noch ganz ist, schließe einen 220 Ohm-Vorwiderstand an +5V auf dem Arduino-Board an. Dann die LED mit der Anode an den Widerstand. Dann die Kathode der LED an GND. Wie Du Anode und Kathode unterscheiden kannst, steht hier: http://www.meinduino.de/ledsamarduino.shtml

Falls Du Dir mit Anode und Kathode unsicher bist, schließe sie einfach einmal in diese, dann in die andere Richtung an.

Wenn sie dann nicht leuchtet (durch eine Handykamera betrachtet), hast Du ein ernstes Problem. Dann kann es gut sein, dass sie kaputt ist.

Gruß, Ralf

apple877: Über Pin 3 kommt kein Strom in dem Beispielsketch. Wo wird da denn festgelegt dass es Pin 3 ist?

Das ist in der Lib fest vorgegeben, da die Modulation über PWM auf einem Timer gemacht wird. Und die Timer sind fest mit bestimmten Pins verbunden.

Also durch meine Handykamera seh ich leider gar nichts, auch nicht bei der Ferbedienung. Mit dem Auge seh ich allerdings bei der Fernbedienung ein leichtes rotes blinken. Die IR-LED funktioniert wenn ich sie in in nem anderen Sketch mit nem delay von 100 millisekunden an und ausschalte sieht man das an der "StatusLed" durch den IR-Empfänger. Habe jetzt nen 200 Ohm Widerstand eingesetzt

Hallo, bei den meisten neueren Handy-Kameras sieht man kein Infrarotlicht mehr, weil die mittlerweile IR-Filter eingebaut haben (was früher meist nicht der Fall war). Falls das Handy aber 2 Kameras besitzt (eine vorne, eine hinten), dann ist es oft so, dass die vordere Kamera (also jene Kamera mit der man sich selbst aufnehmen und gleichzeitig am Display sehen kann) kein IR-Filter hat und die hintere schon. Mit der vorderen kann man also eher IR-LEDs überprüfen.

Gruß Udo

Okay vielen Dank Udo, damit wäre jetzt bewiesen, dass die IR-Led funktioniert https://www.dropbox.com/s/qlie02b26lnr3an/IMG_5811.JPG

Hallo, "Ich sehe sie aber auch nicht blinken wenn ich sie an 5V halte"

Wahrscheinlich hat sie nur einmal geblinkt- und blinkt wohl auch nie wieder. LED an 5v ohne Vorwiderstand ist ganz schlecht.

Wenn Du Dich nach DEM- richtest, dann funktioniert das auch: http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

Dann ist es möglich, das Du den falschen IR-Empfänger hast, die sind nur für eine bestimmte Modulationfrequenz z.B. 36kHz. Bei den Fernbedienungen reichen die aber von 30 bis 40kHz.

Wenn Du also am Arduino einen 32kHz Empfänger hast, aber Deine Fernbedienung 36kHz sendet, dann kann- das funktionieren, muß aber nicht.

Du könntest Dir zum testen Deiner IR-Diode einen einfachen Sketch schreiben, nach dem Motto: digi pin high delay (250) digi pin low delay(250) wenn Du keinen passenden Widerstand hast, dann nehme 3 oder 4 100Ohm in Reihe. So könntest Du schon einmal prüfen, ob die LED hin ist.

Die IR-LED´s kannst Du mit bis zu 500mA betreiben, im Pulsbetrieb. So um die 100mA für Fernbedienungen sollten aber reichen.

Der Arduino stellt Dir am Pin max 20mA zur Verfügung. Wenn Du mehr benötigst, dann kannst Du auch mehrer Pin´s zusammenschalten. Ein Pin liefert 20mA, zwei Pin´s liefern 40mA. Das reicht für die IR-LED. Reichweite (20mA) sind dann so 5 bis 6m wenn sie ausgerichtet ist. Soll heißen, IR-LED´s haben einen Reflektor um das "Licht" gebündelt in eine bestimmte Richtung zu lenken. Wenn Du Deine nun mit 20mA betreibst, dann richte sie so genau wie möglich nach dem TV-Empfänger aus. Wenn Dein IR-Empfänger ein "MetallDraht" Gehäuse hat, dann achte einmal auf Kurzschluss, die Gehäuse sind bekannt dafür.

Wenn das alles richtig verdrahtet ist, dann laufen die Beispielprogramme aus der Lib ohne Probleme. Gruß und Spaß Andreas IR-Info http://www.mikrocontroller.com/de/IR-Protokolle.php

Die IR-LED funktioniert noch, siehe Bild oben(Sie hatte außerdem immer mindestens nen 100-Ohm Widerstand). Der Empfänger funktioniert ebenfalls: https://www.dropbox.com/s/a7c7q9mfnkteiba/Screenshot%202014-07-30%2014.39.56.png RC6 haut hin is ne Philps-Fernbedienung. Funktioniert also alles bestens, außer das Senden. Wenn der Sender an pin 3 angeschlossen ist kann ich mit der Handykamera nichts blinken sehen wenn ich das Signal wieder senden will...

Hallo, das sind empfangende Rohdaten, die sagen Dir fast nichts- und so aus dem "Stand" kannst Du damit nichts anfangen. Empfangen soltest Du etwas ähnliches wie "0x77E130B6, B66, A08" oder so ähnlich. Und genau das sendest Du auch. Die SendeIR-LED MUSS an Pin3 hängen, sonst funktioniert das nicht. Gruß und Spaß Andreas

Hi,
ja aber diese Roh-Daten sendet er doch auch wieder bei dem IRRecord sketch oder?
Also müsste es doch eigentlich rein theoretisch schon lange funktionieren?
Oder steh ich grad aufm Schlauch und verstehs einfach nicht?

Gruß
Noah

Hallo, "Oder steh ich grad aufm Schlauch" Da stelle ich mich mal dazu. Diese Rohdaten sind eigentlich nur dazu gedacht, um ein unbekanntes IR-Protokoll zu erkennen. Nicht alles was dort empfangen wird, wird später auch wieder gesendet. So mein Verständnis.

Was ich gemacht habe: die Sende IR-LED (20mA) nach Anleitung angeschlossen. Mit dem Empfänger bin ich genau so verfahren. Dann habe ich mit den Beispielen der Lib gefummelt, machte alles einen guten Eindruck. Mit den Rohdaten ist nichts anzufangen. Ich habe dann von meiner MacMini Fernbedingung das Kommando "0x77E130B6" empfangen. Dann habe ich mir einen kleinen SendeSketch geschrieben, und DAS Kommando einfach gesendet. Treffer!

Bei der Minimalen Stromaufnahme der IR-LED sollte sie allerdings ausgerichtet sein. Auch sollte die Modulationfrequenz des ArduinoEmpfänger stimmen. ich nutze diesen: IR-TFM5360, mußt Dir mal das Datenblatt besorgen.

Das funktioniert mit jeder Fernbedienung die ich hier in die Hände bekommen habe. Also, vergesse die Rohdaten. Das läuft einwandfrei. Gruß und Spaß Andreas

Ich bekomms einfach nicht zam.
Hab jetzt auch mal die Apple Remote(die aus Alu) gesnifft.
Mit IRrecvdump bekomm ich dann raus, dass es NEC ist, das Kommando ist “77E12055” und es ist 32bit lang.
Also trage ich bei IRsenddemo anstatt sendSony sendNec(0x77E12055,32) ein.
Ich habe die Ferbedienungskopplung vom Mac deaktiviert das board ungefähr 20cm entfernt gehalten und den sketch laufen lasse, nichts passiert.

Bei IRrecord wird erst das Signal gesnifft und dann auf Knopfdruck wieder versendet, so hab ich das verstanden.

Gruß
Noah

Hallo, "0x77E12055" nur DAS senden, ",32" wird nicht gesendet. Gruß und Spaß Andreas

Aber ich brauch doch die Länge des codes?

irsend.sendNEC(codeValue, codeLen);

Hallo, da ist etwas verfummelt. Ich hab mir die Lib eben geholt. Auf dem Mega habe ich auf Pin 8 Pin 9 das IR-Signal, Pin 3 ist tot. Sehen kannst Du das, wenn Du statt einer IR-LED eine LED nimmst. Im Moment läuft es bei mir auch nicht- und- das- geht- überhaupt nicht. Gruß und Spaß Andreas

SkobyMobil: Auf dem Mega habe ich auf Pin 8 das IR-Signal, Pin 3 ist tot.

Pin 8 ist etwas seltsam. Vor allem auf dem Mega kann man aber einstellen welcher Timer verwendet wird: https://github.com/shirriff/Arduino-IRremote/blob/master/IRremoteInt.h

if defined(AVR_ATmega1280) || defined(AVR_ATmega2560)

//#define IR_USE_TIMER1 // tx = pin 11

define IR_USE_TIMER2 // tx = pin 9

//#define IR_USE_TIMER3 // tx = pin 5 //#define IR_USE_TIMER4 // tx = pin 6 //#define IR_USE_TIMER5 // tx = pin 46

Auch auf dem UNO könnte man Timer1 und Pin 9 verwenden

Danke, pin9 geht wenigstens mit einer normalen LED allerdings sendet die IR-Led immer noch nicht das was sie soll. Sie sendet zwar, aber weder Mac noch TV empfangen ein Signal(Natürlich mit den entsprechenden codes).