Auslösetasten mit einer Diode

totaler Neuling hier. Ich habe diesen Beitrag gelesen:
http://dduino.blogspot.com/2012/02/trigger-buttons-with-arduino.html

Es versucht im Grunde, einen Knopf in einem IC von einem Arduino-Pin (grün) auszulösen.

Geben Sie hier die Bildbeschreibung ein

Ich verstehe, wie die zweite Methode funktioniert, sie umgeht einfach den Knopf von einer Seite zur anderen, wobei der Transistor als Schalter verwendet wird, obwohl ich nicht sicher bin, wofür der Widerstand ist. Ich bin mir nicht sicher, ob ich verstehe, wie die erste Methode funktioniert. Ich verstehe, dass die Aktion ausgelöst wird, wenn der IC-Pin mit GND verbunden ist.

Jetzt denke ich, dass der Arduino-Pin die Diode mit einem Pin als Output Low (0 V? GND?) Verbindet und das den IC-Pin auf GND auslöst, damit die Aktion ausgeführt wird. Um es auszuschalten, setzt es den Arduino-Pin auf Input und es funktioniert einfach? Wie?

Funktioniert dies, wenn der IC und das Arduino an unterschiedliche Stromquellen angeschlossen sind?

Antworten (2)

Der Blogpost sagt nicht, was der IC ist, aber wenn es sich um einen CMOS-IC (ein Logik-IC oder einen Mikrocontroller) handelt, benötigt der Pin einen Pull-up-Widerstand. 100.000 Ω ist ein guter Wert. Wenn Sie den Widerstand nicht platzieren, ist der Eingang bei geöffnetem Schalter undefiniert. Der Widerstand macht den Eingang hoch.

Zuerst der Transistor. Ein PNP-Transistor hat zwei Stromflüsse: einen kleinen Strom vom Emitter zur Basis und einen (möglicherweise) größeren Strom vom Emitter zum Kollektor. Der Emitter-Kollektor-Strom ist normalerweise ein Vielfaches des Emitter-Basis-Stroms, kann aber durch externe Komponenten begrenzt sein. Das Stromverhältnis wird durch das des Transistors definiert H F E , was bei Kleinsignaltransistoren oft mehr als 100 beträgt. 1mA vom Emitter zur Basis erlaubt also 100mA vom Emitter zum Kollektor.

Der Emitter-Basis-Übergang ist eigentlich eine Diode und hat den gleichen Spannungsabfall wie eine herkömmliche Diode bei niedrigen Strömen, etwa 0,7 V. Die Basis liegt also bei 2,3 V (3 V - 0,7 V). Wenn Sie den Arduino ohne den Widerstand anschließen und seinen Ausgang niedrig machen würden, haben Sie ein Problem. Sie würden einen Punkt bei 2,3 V direkt mit einem anderen Punkt bei 0 V verbinden, was einen Kurzschluss bedeutet, und der hohe Strom kann Ihr Arduino und den Transistor beschädigen. Durch Platzieren eines Widerstands begrenzen Sie den Strom. Ein 2200 Ω Widerstand begrenzt ihn auf etwa 1 mA (2,3 V / 2200 Ω = 1 mA). Bei einem niedrigen Ausgang des Arduino können also mindestens 100 mA zum Kollektor fließen. Die Eingangsimpedanz des IC wird jedoch sehr hoch sein, und der tatsächliche Strom wird auf wenige begrenzt sein μ A. Trotzdem reicht das aus, um die Kollektorspannung nahe an den Emitter zu bringen, also nahe 3 V, und der Eingang des IC wird hoch sein. Hinweis: Genau wie der andere Schaltplan einen Pull-up-Widerstand benötigt, benötigt dieser einen Pull-down-Widerstand, um einen definierten Pegel zu haben, wenn der Schalter geöffnet ist.
Wenn die Basis des Transistors hoch ist, gibt es keinen Basisstrom, daher keinen Kollektorstrom, und der Pulldown-Widerstand zieht den Eingang des IC nach unten. Hinweis: Ich verstehe, dass der Arduino mit +5 V arbeitet. Wenn Sie dann den Ausgang hoch machen, wird die Basis 2 V höher als der Emitter. Normalerweise möchte man das nicht, weil der Emitter-Basis-Übergang nur eine kleine Sperrspannung überstehen kann. 2V sind aber noch akzeptabel.

Dann die Diode. Wenn der Ausgang des Arduino hoch ist, gibt es keinen Spannungsabfall über der Diode, so dass sie keinen Strom leitet und der Pull-up den Eingang hoch macht. Wenn der Ausgang des Arduino niedrig ist, fließt Strom von +3 V durch den Pull-up-Widerstand und die Diode nach Masse. Die Anode der Diode liegt etwa 0,7 V über der Kathode, also bei 0,7 V. Die meisten Logik-ICs sehen dies als niedrigen Pegel.

Der Grund, warum Sie die Diode benötigen: Wenn Sie den IC direkt mit dem Arduino-Ausgang hoch verbinden würden, würde das Schließen des Schalters den Ausgang gegen Masse kurzschließen.

Bei der zweiten Methode haben Sie recht, der Transistor fungiert einfach als Schalter. Der Widerstand wird (fast) an der Basis (Eingang) eines Bipolartransistors wie diesem benötigt. Ein BJT ist im Grunde ein Stromverstärker. Sie injizieren einen kleinen Strom in die Basis (durch den Widerstand) und ermöglichen einen viel größeren Stromfluss vom Kollektor zum Emitter. Zu viel Strom in die Basis beschädigt den Transistor und das Arduino.

Die erste Methode ist subtiler. Der Schalter hat zwei Zustände:

  • Geschlossen. Dadurch wird der IC-Pin stark auf Masse gezogen.
  • Offen. Dadurch kann der interne Widerstand des ICs den Pin sanft auf 5 V ziehen.

Jetzt könnten Sie den Arduino einfach direkt mit dem IC-Pin verbinden. Der Arduino-Ausgang hat zwei Zustände:

  • Niedrig. Es zieht stark zu Boden.
  • Hoch. Es zieht stark auf 5V.

Das Problem tritt auf, wenn Sie die Taste drücken, während der Arduino-Ausgang hoch ist. Jetzt haben Sie den Knopf, der stark auf Masse zieht, und den Arduino, der stark auf 5 V zieht. Dies ist ein Kurzschluss und wird den Ausgangsstift des Arduino durchbrennen.

Die Diode verhindert dies, indem sie die Wirkung des Arduino auf den IC-Pin ändert. Jetzt hast du:

  • Niedrig. Es zieht stark durch die Diode auf Masse.
  • Hoch. Die Hochspannung wird durch die Diode blockiert und der IC-Pin wird durch den internen Widerstand des IC sanft hochgezogen.

Wenn die Taste gleichzeitig gedrückt wird, während der Arduino-Pin hoch ist, wird der hohe Kurzschlussstrom durch die Diode blockiert, und alles ist sicher.