Ich habe mit einem bürstenbehafteten Gleichstrommotor, einem 2N2222 und einem Arduino-PWM herumgespielt, um unterschiedliche Geschwindigkeiten aus meinem Motor herauszuholen. Nun, basierend auf einem Video-Tutorial, das ich auf YouTube gesehen habe, wurde empfohlen, einen 1-kOhm-Widerstand zwischen den PWM-Pin und die Basis zu legen, anscheinend um das Arduino zu schützen, falls der Transistor vermasselt wird. Ich habe getan, was mir gesagt wurde, und zwar nach diesem Schema (Meine Stromversorgung ist 1,5 V und R1 ist 1 K, nicht 220).
Der Motor würde sich jedoch nicht drehen, wenn der Mikrocontroller-Pin 5 V (Volllast) ausgeben würde. Also dachte ich mir, lass mich nicht mit meinem Arduino herumspielen, falls das das Problem war, also habe ich die Basis über den 1k-Widerstand an die gleichen 1,5 V angeschlossen, die den Motor antreiben ... immer noch nichts ... setze a Neuer 1k-Widerstand ... immer noch nichts ... also habe ich den 1k-Ohm-Widerstand entfernt und meine Basis direkt an die 1,5-V-Quelle angeschlossen und der Motor begann sich zu drehen.
Kann mir bitte jemand erklären warum das so ist? Bestimmt nach dem, was ich gelesen habe, nicht die Spannung an der Basis den Strom, der vom Kollektor zum Emitter fließt? -_- <-- Verwirrtes Gesicht
Der Motor benötigt eine gewisse Stromstärke, um sich zu drehen. Wie viel Strom durch den Transistor vom Kollektor zum Emitter und damit durch den Motor fließen darf, wird durch den Strom gesteuert, der durch den Transistor von der Basis zum Emitter fließt, multipliziert mit der Stromverstärkung des Transistors, die als "h fe " bekannt ist. Der Basiswiderstand reduzierte diesen Strom auf einen zu niedrigen Wert, um den Motor drehen zu lassen, selbst wenn er durch den Transistor verstärkt wird. Verwenden Sie Ihr Wissen über den erforderlichen Strom des Motors, die Spannung über dem Transistor von der Basis zum Emitter während der Sättigung, die Spannung vom MCU-Pin zum Emitter und die h fe des Transistors , um den korrekten Maximalwert des zu verwendenden Widerstands zu berechnen. Z.B:
300 mA (I Motor ) / 70 A/A (h fe ) = 4,2 mA
(5 V (V MCU ) - 0,7 V (V BE(SAT) ) )/4,2 mA = 1,024 kOhm
Beachten Sie, dass die Motorspannungsversorgung nicht in diese Berechnungen einbezogen wird, aber dennoch hoch genug sein muss, nachdem die Spannung vom Kollektor zum Emitter gemäß den Motorspezifikationen abgezogen wurde.
Wie bei jedem NPN-Transistor müssen Sie den Strom an der Basis Ihres 2N2222 begrenzen, R1 ist daher erforderlich, da NPN-Transistoren strombetriebene Teile sind (wie LEDs).
Wenn Sie einen NPN-Transistor als Schalter verwenden, möchten Sie ihn im gesättigten Modus verwenden, da er den Spannungsabfall am Kollektor minimiert (vgl V_CE(sat)
. ). Dazu müssen Sie den Strom an der Basis auf 1/10 begrenzen I_C
, dh den Strom, mit dem Sie Ihren Motor antreiben möchten.
Andernfalls könnte Ihr Transistor ohne Sättigung zu heiß werden / einen zu hohen Spannungsabfall ergeben.
Beachten Sie, dass ein GPIO-Pin auf Ihrem Arduino (ATmega328p) nur bis zu 20 mA liefern kann. Somit sind Sie für Ihren Motor auf 200 mA begrenzt. Was möglicherweise nicht ausreicht.
Bei der Berechnung des Wertes R1 müssen Sie den Spannungsabfall an der Basis (dh V_BE(sat)
) und den Spannungsabfall am GPIO-Pin (bei 20 mA, vgl V_OH
. vs. Ausgangsstromangaben im ATmega328p-Datenblatt) berücksichtigen.
Siehe auch das - sagen wir - Onsemi 2N2222A-Datenblatt für V_CE(sat)- und V_BE(sat)-Zahlen.
Eine Alternative zur Verwendung eines NPN-Transistors zum Schalten Ihres Motors ist die Verwendung eines MOSFET mit Logikpegel. Im Gegensatz zu einem NPN-Transistor ist er spannungsgesteuert und damit energieeffizienter. Außerdem können Sie mit einem MOSFET mit dem kleinen Strom, der an einem GPIO-Pin verfügbar ist, viel höhere Lasten schalten.
Ich gehe auf die Beine und gehe davon aus, dass Sie, als Sie die Basis des Transistors an die 1,5-V-Stromquelle angeschlossen haben, ihn tatsächlich über den Motor angeschlossen haben. Dies würde erklären, warum das Verhalten so war, wie Sie es beschrieben haben.
Angenommen, Ihre Implementierung der Schaltung war korrekt und der Transistor ist nicht rückwärts (es bringt mich die ganze Zeit; es lohnt sich, es zweimal zu überprüfen), ist das Problem mit dieser Schaltung mit ziemlicher Sicherheit die Spannung Ihrer Stromquelle. Der Transistor schneidet etwa 0,6 V in der Basis-Emitter-Verbindung ab und wahrscheinlich näher an 0,8 V zwischen Kollektor und Emitter, je nachdem, wie gesättigt er ist. 5 V bis 1 K ergeben 5 mA, was bei einem h fe von etwa 100 (ziemlich normal) maximal 500 mA Strom durch den Kollektor ergibt.
Dies sollte für einen kleinen Spielzeugmotor ausreichen, aber Sie erhalten keine 500 mA durch einen Motor mit einer Stromversorgung von 1,5 V - 0,8 V = 0,7 V, insbesondere wenn es sich nur um eine oder zwei Batterien handelt. Wie in den Kommentaren vorgeschlagen, sollten Sie eine Stromquelle in Betracht ziehen, die eher Ihrem Diagramm, 9 V, entspricht. 5V wären ein Minimum, würde ich sagen, oder vielleicht 3V.
Der 1K-Widerstand ist wichtig, nicht weil er Ihren Arduino vor Rückkopplung schützt (obwohl es das auch gibt), sondern weil er verhindert, dass er seine 5 V durch den Transistor kurzschließt, was das eine oder andere durchbrennen könnte (obwohl der Strom, der von einem Arduino ist begrenzt, ich denke weniger als 100 mA). Sie sollten es auf jeden Fall immer verwenden .
Schließlich können Sie, je nachdem, wie Sie den Arduino mit Strom versorgen, seine Stromquelle mit dem Motor teilen. Wenn Sie es über die Barrel-Buchse mit Strom versorgen, bin ich zu 80% sicher, dass Sie es direkt an dieses Netzteil anschließen können, indem Sie die V- in -Buchse neben den 5 V und 3,3 V und allen anderen verwenden (ich stelle mir ein Uno vor ). Diese Linie wird nicht reguliert (wiederum zu 80% sicher), sodass Sie sich keine Sorgen machen müssen, die Komponenten des Arduino zu überfordern. Umgekehrt könnten Sie eine anständige Stromversorgung erhalten und den Motor und den Arduino damit versorgen, indem Sie umgekehrt vorgehen und den V- in- Pin des Arduino mit der Versorgungsspannung verbinden, wie es beabsichtigt ist ...
Viel Glück; Ich hoffe, das hilft.
Markierungen
Markierungen
Kurt E. Tuchmacher
Roh