Verwenden Sie 555 für zusätzliche 40-kHz-PWM in Arduino

Ich muss Infrarotsignale mit IR-LED von meinem Arduino-Gerät übertragen. Die IR-Signale bestehen aus PWM-40-kHz-Perioden und "Stille"-Perioden unterschiedlicher Länge (typische IR-Fernsignale).

Ich weiß, dass es eine IR-Remote-Bibliothek gibt, die interne Taktregister verwendet, aber leider hat mein Gerät bereits alle PWM-Pins verwendet.

Ich muss die IR-LED mit einer normalen PIN mit Strom versorgen. Soweit ich weiß, ist es nicht möglich, nur mit Software exakte 40 kHz am digitalen Ausgangs-PIN zu erreichen. Ich möchte also eine 555-Schaltung zwischen der Arduino-Digitalausgangs-PIN und der IR-LED einfügen, sodass der hohe Zustand der digitalen PIN ein Blinken der LED bei 40 kHz verursacht.

Ich bin mir nicht sicher, wie die Verkabelung aussehen soll.

Ich dachte an die Verwendung dieses Schemas:

Schema

( Quelle )

Und das Anschließen von +5 V an die Arduino-Ausgangs-PIN, aber ich denke, diese Lösung ist nicht perfekt. Gibt es eine bessere Möglichkeit, 555 mit dem Arduino-Ausgangspin zu verbinden?

Update: Ich habe die unten von akellyirl beschriebene Lösung verwendet und es funktioniert perfekt. Ich habe R1 = 1000 Ohm, 2000 Ohm Potentiometer als R2 und C1 = C2 = 10 nF verwendet. Impulse, die durch den Arduino-Pin ausgelöst werden, der mit dem Reset-Pin 555 verbunden ist und eine Länge zwischen 400 und 1600 Mikrosekunden hat, werden von meinem Technics HiFi richtig interpretiert.

Ich würde den 555 immer mit Strom versorgen und takten lassen und dann das LED-Signal mit einem vom Arduino gesteuerten Transistor gaten.
@Majenko, entschuldigen Sie die grundlegenden Fragen, aber wie genau sollte der Transistor mit der LED- und Arduino-Ausgangs-PIN verdrahtet werden?
PNP (oder P-Kanal-MOSFET mit Logikpegel) zwischen 5 V und R1 ist das einfachste Layout. Möglicherweise möchten Sie Ihr Steuersignal mit einem NPN von der Basis des PNP zu Masse invertieren, andernfalls schaltet ein HIGH aus, wenn es ausgeschaltet ist, und ein LOW schaltet es ein (gut, wenn Sie sich daran erinnern, dass es so ist;))
@Majenko: Es ist einfacher, den Arduino-Pin einfach an den Reset-Eingang des 555 (Pin 4) anzuschließen.
Richtig, aber welche Art von Startverzögerungen erhalten Sie vom Reset-Pin? (weniger als die Macht zu kontrollieren, würde ich vermuten).

Antworten (2)

Dieser Schaltplan ist schlecht gezeichnet und schwer zu verstehen. Siehe hier für ein gutes Tutorial.

Geben Sie hier die Bildbeschreibung ein

Wie auch immer, Sie sollten Arduino verwenden, um den RESET-Pin (Pin4) zu steuern. High aktiviert den Oszillator, Low deaktiviert ihn.

Außerdem wäre es viel besser, die LEDs nicht direkt vom 555 anzusteuern.

Weitere Informationen dazu finden Sie in dieser verwandten Frage .

Ok, also sollte ich PIN 4 direkt mit der Arduino-Ausgangs-PIN verbinden, anstatt +5 V, oder? Ich verwende eine IR-LED mit 5 V und einem 100-Ohm-Widerstand, sodass weniger als 50 mA benötigt werden. Der NE555 sollte es schaffen, ihn ohne Transistor an PIN 3 anzusteuern, denke ich?
@PanJanek Ja. Du hast es. Ein kurzer Blick auf das Datenblatt des NE555 zeigt eine Kapazität von +/- 200 mA am Ausgang.

Die Frequenz muss für IR nicht sehr genau sein. Ich fand, dass sogar 10% Fehler gut funktionieren.

DelayMicroseconds sollten also gut funktionieren, solange Sie Ihr Arduino nicht benötigen, um gleichzeitig etwas anderes zu tun, um die LEDs (mit einem Transistor, da die Arduino-Pins nicht genug Strom liefern können) bei 38 kHz direkt anzusteuern.

Über diese LEDs: Sie sollten jeweils einen eigenen Strombegrenzungswiderstand haben. Da zwei LEDs nicht genau die gleiche Durchlassspannung haben (und da der Strom mehr oder weniger exponentiell mit der Spannung variiert), können parallele LEDs einen sehr unterschiedlichen Strom sehen (was sich auf die Effizienz und Alterung auswirkt).