Infrarot Signal gesendet, nichts passiert!

Guten Tag liebe Leute,

ich bastel gerade noch an meiner HomeAutomation und hänge gerade am Thema Infrarot fest.

Gearbeitet habe ich nach folgender Anleitung, um erstmal einigermaßen ins Thema zu kommen.

Den IR-Empfänger habe ich erfolgreich in betrieb genommen und habe zum Testen mal das Signal meiner TV Fernbedienung aufgenommen.
Der Serialmonitor spuckt folgendes Aus:

Value: 20DF10EF (32 bits)
Protocol: NEC

Jetzt kommen wir zum eigentlichen Problem, dem Senden.
Ich sende mit folgendem Code, um zu Testen ob das ganze überhaupt in irgendeinerweise funktioniert:

#include <IRremote.h>
IRsend irsend;
int ledpin=13;

void setup()
{
  Serial.begin(9600);
}

void loop() {
 
      irsend.sendNEC(0x20DF10EF, 32); 
      delay(5000);
      Serial.println("senden");
      irsend.sendNEC(0x20DF10EF, 32);
      delay(5000);
      Serial.println("senden");

    }

Angeschlossen ist das ganze an PIN 3, was man aufgrund der lib auch tun muss. Die IR Led liegt mit dem Minus Pol an Ground und am Pluspol mit 100Ohm Widerstand an PIN3.
Mein Problem ist jetzt, dass nichts passiert. Also der TV zeigt keine Reaktion, aber dennoch denke ich, dass ich nichts verkehrt gemacht habe.

Das einzige was sein könnnte, ist, dass die IR Led ne falsche ist, gibts da Unterschiede? Ich habe bei Wikipedia gelesen, dass es die mit unterschiedlichen Wellenlängen gibt, ist das denn jetzt egal welche ich da nehme?

Ich hab bei Ebay einfach 10 gegurtete Osram(SFH 485-2 E7500) IR LEDs gekauft, kann das daran liegen?
Leider steck ich nicht so tief im Thema IR, da ich gehofft hatte, dass das alles eher Plug and Play sei :wink:

Gruß
Jan

Hast du mal getestet, ob die IR-LED überhaupt funktioniert oder auch einfach nur verpolt ist? Kan man mit jeder Digitalkamera bzw. einem Foto-Handy kontrollieren.

pinMode(ledpin, OUTPUT);

fehlt doch im Setupteil, oder sehe ich das falsch?

lengi:
Angeschlossen ist das ganze an PIN 3, was man aufgrund der lib auch tun muss. Die IR Led liegt mit dem Minus Pol an Ground und am Pluspol mit 100Ohm Widerstand an PIN3.
Mein Problem ist jetzt, dass nichts passiert. Also der TV zeigt keine Reaktion, aber dennoch denke ich, dass ich nichts verkehrt gemacht habe.

Hallo,

1kOhm scheint mir als Vorwiderstand ein bißchen zuviel zu sein. 270 Ohm sollten da dicke reichen. Ist Dein Fernseher auch ein NEC-Gerät? Es gibt da reichlich Unterschiede im Datenformat. Nicht jedes Gerät reagiert auf jede Fernbedienung. Vielleicht ist dieser Link für Dich interessant?

Gruß,
Ralf

sth77:
Hast du mal getestet, ob die IR-LED überhaupt funktioniert oder auch einfach nur verpolt ist? Kan man mit jeder Digitalkamera bzw. einem Foto-Handy kontrollieren.

Sehr guter Einwand, habe ich auch gerade im Troubleshooting gesehen. Also daran wirds wahrscheinlich liegen, ich sende gar nichts. Hab das eben mit meine Handykamera getestet, bei der TV Fernbedienung sieht man das deutlich. Beim mir ist leider gar nichts zusehen. Habe eben auch noch schnell eine Fernbedienung, die ich nicht mehr brauch auseinander gefummelt und die LED ausgelötet. Kommt aber aufs gleiche raus, ich sende nichts. Als vermute ich mal, dass das irgendwie am Programm liegt. Die Verdrahtung habe ich schon mindestens 10mal geprüft, Polung auch. Am Breadboard habe ich auch schon andere Kontakte getestet und andere Zuleitung, daran kanns eigentlich nicht liegen.

Wanderfalke:
pinMode(ledpin, OUTPUT);

fehlt doch im Setupteil, oder sehe ich das falsch?

Leider nein, habs nur vergessendas "ledpin=13" rauszunehmen. Hatte eben noch eine LED extra an Pin13, die mitleuchten sollte, damit ich sehe, wann ich was sende, habe ich aber rausgenommen und oben nur vergessen rauszulöschen.

Das ist ja auch das komische, der Verfasser hat vorgesehen, dass der Output Pin 3 sein muss. Steht da zumindest so. In dem Sende Beispielcode von ihm wird ja auch kein PIN extra dafür zugewiesen und ich glaube daran liegt das irgendwie. Ich versuche gerade das irgendwo in der Libary zu finden, aber irgendwie steig ich da noch nicht richtig durch!

Schachmann:

lengi:
Angeschlossen ist das ganze an PIN 3, was man aufgrund der lib auch tun muss. Die IR Led liegt mit dem Minus Pol an Ground und am Pluspol mit 100Ohm Widerstand an PIN3.
Mein Problem ist jetzt, dass nichts passiert. Also der TV zeigt keine Reaktion, aber dennoch denke ich, dass ich nichts verkehrt gemacht habe.

Hallo,

1kOhm scheint mir als Vorwiderstand ein bißchen zuviel zu sein. 270 Ohm sollten da dicke reichen. Ist Dein Fernseher auch ein NEC-Gerät? Es gibt da reichlich Unterschiede im Datenformat. Nicht jedes Gerät reagiert auf jede Fernbedienung. Vielleicht ist dieser Link für Dich interessant?

Gruß,
Ralf

es sind 100 Ohm, optische Täuschung im Text :wink:
Fernsehr ist kein NEC Gerät, aber ich habe nen anderen Empfängercode genutzt, der das Datenformat ermittelt und ausgibt und das war NEC, 32 Bit. Deinen Link schau ich mir gleich mal an :wink:

Wie gesagt, ich vermute das liegt irgendwie an der Pin-Zuweisung, weil ich ja anscheinen gar nichts sende...

Muss denn dieser Pin 3 nicht ebenfalls auf OUTPUT gesetzt werden ?

Ob die LED an sich geht kannst du überprüfen wenn du sie mal im Sekundentakt blinken lässt. Einfach des entsprechende Beispiel aus der IDE laden (Basic -> Blink) und den LED Pin anpassen

Schachmann:

lengi:
Angeschlossen ist das ganze an PIN 3, was man aufgrund der lib auch tun muss. Die IR Led liegt mit dem Minus Pol an Ground und am Pluspol mit 100Ohm Widerstand an PIN3.
Mein Problem ist jetzt, dass nichts passiert. Also der TV zeigt keine Reaktion, aber dennoch denke ich, dass ich nichts verkehrt gemacht habe.

Hallo,

1kOhm scheint mir als Vorwiderstand ein bißchen zuviel zu sein. 270 Ohm sollten da dicke reichen. Ist Dein Fernseher auch ein NEC-Gerät? Es gibt da reichlich Unterschiede im Datenformat. Nicht jedes Gerät reagiert auf jede Fernbedienung. Vielleicht ist dieser Link für Dich interessant?

Gruß,
Ralf

Ralf, die Null und das O sehen sehr änlich aus. Bei genauen betrachtung ist das ein 100 OHM Widerstand und nicht ein 1000 Ohm.

Als Fehlerkontrolle mit einen Händikamera die IR Led betrachten. Die sieht das IR-Licht.

grüße Uwe

[EDIT] War etwas sehr langsam mit dem Antworten[/EDIT]

uwefed:
Ralf, die Null und das O sehen sehr änlich aus. Bei genauen betrachtung ist das ein 100 OHM Widerstand und nicht ein 1000 Ohm.
Als Fehlerkontrolle mit einen Händikamera die IR Led betrachten. Die sieht das IR-Licht.

Hallo Uwe,

Du hast so Recht! Die sind beide rund. Ich hab' das echt beim Lesen als 1000 Ohm gesehen, vielleicht gehöre ich langsam doch zum alten Eisen :blush:

Aber das schiebt das Problem in diese Richtung: Sind 100 Ohm nicht ein bißchen wenig? Das ergibt immerhin 50 mA. Ich bleibe immer noch bei meinem Vorschlag von 270 Ohm (und mache jetzt in Zukunft immer ein Leerzeichen zwischen die Zahl und die Einheit :wink: ).

Gruß,
Ralf

kurzzeitig muss die das abkönnen :wink:

Also die IR LED funktioniert wunderbar, habe ich gerade getestet, als ich das Kabel, was vom PIN3 kommt einfach mal auf 5V umgesteckt habe. Daran kanns also nicht liegen!

Jetzt bleibt nur noch das Programm über, weil anscheinend nichts aus PIN3 rauskommt :wink:

Orientiert habe ich mich ja an seinem Beispiel:

#include <IRremote.h>
IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(100);
    }
  }
}

Aber ich sehe da im wesentlichen keinen Unterschied. Gut, er hat da noch ne Schleife drin, aber ich wollte das erstmal mit einem Sendebefehl probieren. Wenn ich sein Programm 1:1 verwende kommt auch nichts aus meinem PIN3 :wink:

IRsend uses an infrared LED connected to output pin 3

Ich hab die LED an PIN3, aber da tut sich nichts. Liegt das vielleicht daran, dass er das Uno und ich das Mega habe?

Gruß

Schachmann:
Aber das schiebt das Problem in diese Richtung: Sind 100 Ohm nicht ein bißchen wenig? Das ergibt immerhin 50 mA. Ich bleibe immer noch bei meinem Vorschlag von 270 Ohm (und mache jetzt in Zukunft immer ein Leerzeichen zwischen die Zahl und die Einheit :wink: ).

Gruß,
Ralf

Der Strom ist (5V-UF)/R das sind (5V-1,2)/100 = 38 mA
Etwas hoch aber gepulst und nur auf einem Pin ist es annehmbar.

Grüße Uwe

So Jungs, ich habe das Problem gefunden.

Ich war dann doch mal so Klug, und habe mir auf der Beispielseite die Kommentare ganz unten angesehen und siehe da, einer hatte das gleiche Problem wie ich.

Das Problem ist der Unterschied zwischen dem Uno und dem Mega. Ich weiß nicht genau wie das programmiert wurde, aber beim Mega stimmt die Zuweisung nicht mehr.

Lange Rede, kurzer Sinn. Umstecken von pin 3 auf pin 9 brachte die Lösung, Fernsehr geht an und aus. Alles wunderbar :wink:

Der Pin liegt auf beiden Prozessoren auf OC2B. Einer der Ausgänge von Timer2.

Siehe hier:
http://www.pighixxx.com/pgdev/Temp/Arduino_uno_Pinout_Web.png
http://www.pighixxx.com/pgdev/Temp/ArduinoMega_b.png

Joa, auf das Simpelste (nämlich die Frage nach dem Board) ist DIESMAL keiner gekommen :blush:

Ansonsten: 'luja soag I XD

Der Pin liegt auf beiden Prozessoren auf OC2B. Einer der Ausgänge von Timer2.

Ja, aber gemappt sind sie auf 3 und 9 - bekannte Sache eigentlich, aber man muss halt wissen was für ein Board verwendet wird 8)

Genau, hab ja auch das Mega und hatte bei mir das selbe Problem. In meinem Post habe ich sogar drauf hingewiesen das der Mega und Leo ne andere Pinbelegung haben, zumindest was die Libary vom IR angeht. Ich hatte da auch einfach alle Pins mal durchgetestet. Hatte ne weile gedauert bis ich auf die Idee kam.

LG aus Berlin