Einfachste Möglichkeit, induktive Last mit einem Arduino zu schalten?

Ich versuche, mit einem Arduino Mini einen 3,7-V-Motor (Spulenwiderstand 2,2 Ohm) und einen 6-V-Motor (Spulenwiderstand 8 Ohm) ein- und auszuschalten. Ich habe Probleme, einen universellen Weg zu finden, dies zu tun.

Was ich bisher weiß:

  1. Es muss eine Freilaufdiode vorhanden sein (D1 im Schaltplan.)

  2. Es gibt 4 Möglichkeiten für den Schalter.

    a) Relais (am einfachsten, Arduino Uno mit 12V-Pumpe: Transistor oder Optokoppler+12V-Relais? )

    b) NPN-Transformator https://electronicsclub.info/transistorcircuits.htm

    c) MOSFET mit niedriger Gate-Spannung Wie man eine niederohmige Last mit Arduino und Transistor antreibt

    d) Optokoppler (siehe Relais-Link)

  3. Ein Low-Side-Schalter ist besser als ein High-Side-Schalter. High-Side-Schalter und Low-Side-Schalter

  4. Alle Massen müssen miteinander verbunden werden (es sei denn, es wird ein Optokoppler verwendet) Muss die Signalmasse mit der tatsächlichen Masse verbunden werden?

Ich möchte die Anzahl der Komponenten und den Preis auf ein Minimum beschränken. Relais sind groß und teuer, also hoffte ich, dass ein Transistor ausreichen würde.

Fragen :

  1. Welche Komponenten kann ich sicher aus dem Stromkreis entfernen?
  2. Was ist das Wichtigste, um es richtig zu machen?

Ich verstehe, dass ich R1 brauche, um einen Floating-Pin zu verhindern . Was bewirkt der Pulldown-Widerstand vom Arduino-Ausgangspin zur Masse? Ist es nötig?

Ich probiere verschiedene Motoren aus, um zu sehen, welcher am besten funktioniert.

Bearbeiten 2019:

Am Ende ( nach dem Lesen der Antworten ) habe ich die folgende Schaltung gebaut:

Transistorschalterschema

Die Moral ist Punkte 3 und 4 sind extrem wichtig.

Änderung 2022:

Eine neue Antwort ist erschienen und macht gute Punkte!

Ich würde sagen, dieser Schaltplan ist ein Beispiel für die komplizierteste Art, ihn zu zeichnen. Wenn Sie es logisch von links nach rechts gezeichnet hätten, wären die Fehler im Design offensichtlicher gewesen. Können Sie diese Abscheulichkeit möglicherweise entfernen und durch das Schema ersetzen, das Sie letztendlich verwendet haben, um Schaden für den Geist unschuldiger Strebender zu verhindern? Elektronikbastler :-)
Ich denke, der endgültige Schaltplan war so etwas wie dieser Schaltplan

Antworten (2)

Kein Platz für einen Kommentar. Ich nehme eine SWAG, da viele der benötigten Informationen fehlen.

Dies sollte Sie schließlich zu einer funktionierenden Lösung führen.

Ich hoffe, Sie haben eine große Kiste mit 1N4148s. Mit Ihrer aktuellen Konfiguration und Spannung werden Sie sie regelmäßig durchbrennen. Bei einem Induktor kommt das raus, was reinkommt.

Sie verlieren ungefähr ein Volt durch den Transistor und es wird heiß. Messen Sie Ihre Klemmenspannung der 9-V-Batterie bei eingeschaltetem Motor.

Nachdem Sie diese Messung durchgeführt haben, werden Sie feststellen, dass es nicht groß genug ist, um einen Motor anzutreiben.

R1 sollte zwischen GPIO-Pin 10 und Masse gehen, besonders wenn Sie einen MOSFET verwenden. In Ihrer aktuellen Konfiguration fungiert es auch als Spannungsteiler.

Wie versorgst du den Microcontroller mit Strom? Wie erhalten Sie die von Ihnen erwähnten Spannungen für die Motoren oder gehe ich richtig davon aus, dass sie von der 9-V-Batterie angetrieben werden? Ich würde empfehlen, einen N-Kanal-MOSFET mit Avalanche-Rating mit Logikpegel zu verwenden.

Sie haben Recht, der Transistor wurde heiß und brannte gelegentlich ab. Ich glaube, ich habe das Arduino aus einer anderen Quelle mit Strom versorgt, als der Arduino beim Starten des Motors an Strom verlor. Ich habe das Projekt vor einigen Jahren aufgegeben (und keine anderen Projekte durchgeführt), kann also nicht wirklich sicher sein.

Es wird eine Schaltung benötigt, damit Strom in die Q5-Basis fließt und zurückfließt. Der Rückweg fehlt.

Um diesen Q5-Emitter zu reparieren, verbinden Sie ihn mit Arduino GND.

R1 wird nicht benötigt, schadet aber nicht.

danke für den vorschlag. Ich habe versucht, den Q5-Emitter mit Arduino GND zu verbinden, und tatsächlich hat er den Transistor geöffnet, aber der zum Motor fließende Strom reichte nicht aus, um ihn zu starten. Meine ungebildete Vermutung ist, dass der größte Teil des Stroms von der Motorstromversorgung zum Arduino GND floss und daher nicht durch den Motor. Wenn dies richtig ist, hätte ich den Arduino GND an die Stromversorgung anschließen sollen -