Liebe Community,
ich möchte in einem Sketch einen Ton abspielen UND einen IR Befehl senden.
Wenn ich diese Zeile verwende:
tone(10, 1000);
kann ich die IR Bibliothek #include <IRremote.h> (IRremote von Shirriff V 2.2.3)
nicht verwenden.
Wie mir dieses Forum verraten hat, beißen sich die beiden Bibliotheken.
Im ganzen Programm soll nur zwei Mal ein IR Befehl gesendet werden (z.B. einmal AN (ausgelesen 16236607) und einmal AUS (ausgelesen 16203967)).
Es handelt sich um eine Fernbedienung für einen RGB Strip.
Die IR-Sende-Diode ist an PIN 11 (hinter 220 Ohm) angeschlossen.
Meine Frage:
Ist es möglich, die beiden IR-Befehle OHNE die IRremote Bibliothek zu senden und so auch gleich meine am "falschen" Pin angeschlossene IR-Sende-LED richtig anzusteuern?
Für wohlwollende Antworten ohne zerrissen zu werden danke ich ganz herzlich im Voraus...
Tiff48317:
.....
Bleibt noch die Schwierigkeit des falschen Pins.
Da müsste ich die IR Bibliothek umschreiben, richtig?
Hättet ihr dahingehend noch einen Tipp?
Ich befürchte, das wird nicht einfach, da die Library einen bestimmten Timer verwendet, den du nicht so mal eben auf einen anderen Pin legen kannst.
Warum gefällt dir der Pin D3 nicht ?
Ich habe ERST gelötet und DANACH begriffen, dass die LED an Pin 3 gehört.
Habe die Schaltung heute umgestrickt und siehe da, es funktioniert FAST gut.
Allerdings muß man die LED dem Empfänger fast direkt "vor die Nase" halten.
Morgen (besser gesagt nachher) suche ich hier im Forum mal genauere Infos über Abstrahlwinkel, Reichweite und Vorwiderstand.
Vielleicht sind die 220 Ohm zu viel?
Der Abstand Sender/Empfänger ist nur 35cm.
Auf jeden Fall noch einmal herzlichsten Dank für die schnelle Hilfe!
Wenn du 220 Ohm als Vorwiderstand benutzt, dann ist der Strom der IR-LED etwa 15 bis 20 mA. Deine IR-LED verträgt (mit ziemllicher Sicherheit) mehr, aber der Arduino-Pin eher nicht.
Darum ist ein Transistor-Treiber nötig (siehe unten).
Der Abstrahlwinkel der LED ist zwar nicht bedeutungslos, aber meist viel mehr ins Gewicht fallen bei schlechtem Übertragungsverhalten (= geringe Reichweite):
Wellenlänge: IR-Diode gibt es mit verschiedenen Wellenlängen, gängig: von etwa 850 bis 950nm.
Die Empfänger sind meist auf die entsprechende Wellenlänge optimiert.
Modulationsfrequenz: Die Signale die Infrarot-Fernbedienungen versenden sind gepulst/moduliert. Auch hier gibt es verschiedene Frequenzen, üblich sind 36kHz, 38kHz oder 40kHz (es gibt aber auch welche, die auf deutlich höheren Frequenzen senden z.B. um 450kHz).
Strom: IR-LEDs vertragen meist relativ hohe Ströme (oft 100mA oder mehr), vor allem bei gepulstem Betrieb. Soviel kann aber ein Arduino-Pin keinesfalls liefern (spätestens bei 30-40mA ist Schluss). Um den Strom zu erhöhen brauchst du einen Transistor oder MOSFET.
Alle drei Faktoren bestimmen die mögliche "Arbeitsentfernung".
Über kurze Distanzen funktioniert es meist auch wenn eine oder mehrere der erwähnten Faktoren nicht passen, aber optimale Funktion bekommst du nur, wenn alles stimmt.
Als erstes würde ich den Strom mit einer Transistorschaltung erhöhen.
Schaltungsbeispiel z.B:
Als Transistor kannst du statt dem 2N222 auch eine BC337-40 nehmen (das ist ein sehr gängiger Typ).
Bei R2 = 68 Ohm, ist der Strom durch die IR-LED etwa 50 mA. Wenn du mehr willst/brauchst, dann kannst du diesen Widerstand kleiner machen: bei 33 Ohm wären es ca. 100 mA.
Für dieses Mal habe ich die LED an flexible Leitungen gelötet und direkt vor dem Empfänger befestigt. Sind ja nur 30 cm.
Für das nächste Mal habe ich mir Transistoren bestellt.
Jetzt habe ich allerdings noch ein neues Problem.
Dafür öffne ich aber am besten einen neuen Thread.