Ich habe ein Arduino Pro Micro und einige Teile zum Spielen. Ich möchte einen kleinen 5-V-Motor von einer externen Stromversorgung aus steuern, indem ich mit dem Arduino einen Transistor auslöse. So was:
Ist das überhaupt richtig? Wird es funktionieren? Ich will experimentieren, aber dabei mein neues Spielzeug nicht kaputt machen. Der Transistor, den ich verwende, ist ein NPN, 2N3904.
Sie möchten Ihren Transistor als Schalter verwenden. Ich habe eine nette Seite darüber gefunden, die diese Schaltung gibt:
Vergessen Sie jetzt den ganzen Müll und reduzieren Sie das Design auf Folgendes:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Ihre Schaltung ist korrekt, außer dass der Basiswiderstand (R1) und der Pulldown-Widerstand (R2) fehlen. Außerdem muss die Last (Ihr Motor) am Kollektor des Transistors liegen, nicht am Emitter. Verwenden Sie schließlich eine Rücklauf- oder Schwungraddiode mit der Kathode an V cc , wie im ersten Bild, um hohe Spannungen zu vermeiden.
Am Ende würde Ihr Schaltplan so aussehen:
Simulieren Sie diese Schaltung
Erklärung der Schaltung:
Eine letzte Sache zur Erklärung: warum der Motor auf der Kollektorseite und nicht auf der Emitterseite des Transistors sein muss. Wouter erklärt dies in seiner Antwort kurz: Mit der Last auf der Kollektorseite sind Sie dafür verantwortlich, welche Spannung der Motor bekommt; Mit der Last auf der Emitterseite kann diese Spannung nicht höher sein als die Spannung an der Basis (minus etwas).
Es könnte funktionieren (zumindest für einige Zeit), aber es gibt ein paar Probleme:
Sie haben nicht erwähnt, wie viel Strom der Motor ziehen wird. Ein 2N3904 ist ein Kleinsignaltransistor, der den Motorstrom möglicherweise nicht überlebt (beachten Sie, dass ein blockierter Motor einen viel höheren Strom zieht).
Wie ein Relais kann ein Motor Spannungsspitzen erzeugen. Ich würde eine Diode parallel zum Motor schalten. (Polarität beachten!)
Sie verwenden den Transistor als Emitterfolger, daher kann die Spannung am Motor nur so hoch sein wie die Ausgangsspannung des Arduino (minus 0,6 V oder so). Das könnte funktionieren, aber ich würde den Motor im Kollektordraht bevorzugen. Dies würde einen geeigneten Widerstand im Basisdraht erfordern.
Ich würde aufgrund der Wärmeableitung (Pd) zunächst nicht einmal einen NPN-Transistor verwenden. Pd kann berechnet werden mit:
NPN/PNP -> Pd = Vf*I = 0,7 V*I Wie Sie hier sehen können, wird sich dieser Transistor aufheizen, wenn Sie 1A zeichnen, als gäbe es kein Morgen. (0,7 V) * (1 A) = 700 mW.
MOSFET -> Pd = I ^ 2 * Ron = kleine Zahl Wie Sie hier sehen können, gibt es selbst bei 1 A keine Wärmeabgabe. Da der Einschaltwiderstand typischerweise im Milliohmbereich liegt. (1A)^2*10mOhm = 10mW.
Außerdem haben die meisten MOSFETs eine Flyback-Diode eingebaut!
Hier ist eine Frage: Sie sagen, dass die 5-V-Stromversorgung für den Motor überhaupt nicht mit dem Arudino verbunden ist. In diesem Fall habe ich meine Zweifel, dass die Schaltung funktioniert, es sei denn, sie ist an anderer Stelle mit Masse gekoppelt (z. B. wenn Ihr Arduino über USB mit Strom versorgt wird, das mit der Wechselstrommasse gekoppelt ist, und die Motorstromversorgung gekoppelt ist durch die Steckdose auf denselben Boden). In jedem Fall ist es nicht so, wie Sie Schaltungen entwerfen möchten, wenn Sie sich darauf verlassen, dass Dinge unbeabsichtigt über das Stromnetz gekoppelt werden (z. Beispielsweise ist in dieser Schaltung die V_be (Basis-Emitter-Spannung) undefiniert.
Eine einfache Lösung besteht darin, die Masse des Arduino mit der Masse der Motorstromversorgung zu verbinden. Wenn Sie wirklich darauf bestehen, keine Massekopplung zu haben, müssen Sie eine andere Form der Kopplung haben, entweder optisch (Opto-Isolator) oder magnetisch (Transformator).
Madagaskar
Benutzer17592
Benutzer17592
Felice Pollano
Benutzer17592
Felice Pollano