Hallo,
ich möchte mit meinem Raspberry Pi 3 Modell B gerne mehrere 3.3V Motoren steuern.
Dazu nutze ich Transistoren, die über die GPIO Pins des Pi's geschaltet werden.
Allerdings stockt der Motor dabei, weil der Pi wohl kurz braucht um den GPIO Pin aus und wieder einzuschalten (alle 0.1 Sekunden).
Gibt es dafür eine Lösung?
Motor mit Transistor steuern
-
Snowball27 -
27. Mai 2017 um 11:02 -
Erledigt
-
-
Motor mit Transistor steuern? Schau mal ob du hier fündig wirst!
-
Hallo Snowball27,
Gibt es dafür eine Lösung?
eine externe Spannungsversorgung der Motoren, die durch die GPIO-gesteuerten Transistoren geschaltet werdenPost bitte Deine Schaltuing - sonst weiß keiner, was Du wie verschaltet hast und was bei einem GPIO-Schaltvorgang eingeleitet wird.
Beste Grüße
Andreas
-
Externe Spannungsversorgung habe ich. Habe eine Grafik der Schaltung jetzt eingefügt, danke für den Hinweis
-
Hallo Snowball27,
Externe Spannungsversorgung habe ich. Habe eine Grafik der Schaltung jetzt eingefügt, danke für den Hinweis
Mal von der Polung (Batterie-Plus direkt auf GND) abgesehen, vermisse ich eine Freilaufdiode (s. Abbildung).Ist Dein Transistor ein PNP oder ein NPN?
Kannst Du irgendwas zum Motor verraten, das nicht der Geheimhaltung unterliegt?
Beste Grüße
Andreas
-
Ist ein NPN Transistor. Tut mir leid, meine Grafik stimmt nicht (bin noch totaler Neuling :D), GND ist nach dem Minuspol des Motors angeschlossen.
-
Snowball !
Vorsicht, Deine Schaltung in #1 hat schwere Fehler.
Servus !
-
Ich denke, so sollte es sein...
Ah, da war A schneller mit der Zeichnung .Und der Pulldown an der Basis kann auch nicht schaden.
-
Kannst Du irgendwas zum Motor verraten, das nicht der Geheimhaltung unterliegt?
Der Motor ist ein 3.3V DC Motor (https://www.amazon.de/Quadcopter-Ersatz-Teile-X5C-07-X5C-08/dp/B00P26XT3C/ref=sr_1_1?ie=UTF8&qid=1495881252&sr=8-1&keywords=syma+x5c+motor&tag=psblog-21 [Anzeige]).
-
-
Ich denke, so sollte es sein...Ja stimmt (bis auf die Diode, aber die werde ich jetzt hinzufügen).
-
Hallo RTFM,
Vorsicht, Deine Schaltung in #1 hat schwere Fehler.
weiß ich - wir sind dabei, das zu klären. Jetzt liegen ja immerhin schon mal zwei ziemlich identische Schaltvorschläge vor.Beste Grüße
Andreas
-
mache ich.
-
Die Grundfunktion eines Transistors:
NPN: Wenn Strom von Basis zum Emitter fliesst, wird Emitter zum Kollektor verbunden.
PNP: Wenn Strom vom Emitter zur Basis fliesst, wird Emitter zum Kollektor verbunden.Strom "fliesst" immer vom höheren zum niedrigeren Potential, = technische Stromrichtung
z.B. 3,3 V --> 0 V, 12 V --> 6 V uswServus !
-
Hallo RTFM,
weiß ich - wir sind dabei, das zu klären. Jetzt liegen ja immerhin schon mal zwei ziemlich identische Schaltvorschläge vor.Beste Grüße
Andreas
Also, meinen Schaltkreis habe ich jetzt nach GNOM's Graph aufgebaut, aber der Motor ruckelt immer noch. Brauche ich die Widerstände (wie auf deiner Skizze oben)?
Falls es etwas bringt, die Transistoren die ich benutze sind diese: https://www.amazon.de/Transistor-Npn-Multiuso-Spinotti-Pezzi/dp/B008IFYDZW/ref=sr_1_1?rps=1&ie=UTF8&qid=1495883857&sr=8-1&keywords=transistor&tag=psblog-21 [Anzeige] -
Was steht denn am Motor drauf ?
3,3 V und wieviel mW oder mA ?Hast Du zum verbauten Transistor ein Datenblatt ?
In dem Amazon Sortiment sind verschiedene Axx enthalten.Servus !
-
Taste dich mal schrittweise an den Fehler ran.
Was macht der Motor, wenn du ihn einfach direkt an die Batterie klemmst? Funktioniert er dann?
Wenn ja, teste, ob der Transistor tut, was er soll: Gib mal über einen 1K Vorwiderstand 3,3 V vom Pi (oder auch von der Batterie) auf die Basis des Transistors. Dann müsste der durchschalten und der Motor laufen.
Wenn das geht, muss es an der Ansteuerung vom GPIO liegen. Vielleicht stimmt ja was mit deinem Programm nicht. Wie schaltest du den GPIO? Poste doch mal das Programm.
-
Brauche ich die Widerstände (wie auf deiner Skizze oben)?Ja, damit begrenzt du den Strom durch den Transistor (Zwischen GPIO und Transistor) (Schutz des Pi) und sorgst dafür, dass der Transistor immer einen definierten Pegel hat (Pulldown-Transistor zwischen GND und Transistor).
PS: Reden wir hier eigentlich von einem Mosfet oder von einem Transistor?
-
Was steht denn am Motor drauf ?
3,3 V und wieviel mW oder mA ?Hast Du zum verbauten Transistor ein Datenblatt ?
In dem Amazon Sortiment sind verschiedene Axx enthalten.Auf dem Motor steht nichts und ich konnte auch online keine genaueren Infos finden. Datenblatt habe ich auch keines :') PS: Ich habe mal genau nachgesehen, der Akku des Quadkopters, von dem die Motoren sind, hat 3.7 V nicht 3.3 V.
Automatisch zusammengefügt:
Taste dich mal schrittweise an den Fehler ran.Was macht der Motor, wenn du ihn einfach direkt an die Batterie klemmst? Funktioniert er dann?
Wenn ja, teste, ob der Transistor tut, was er soll: Gib mal über einen 1K Vorwiderstand 3,3 V vom Pi (oder auch von der Batterie) auf die Basis des Transistors. Dann müsste der durchschalten und der Motor laufen.
Wenn das geht, muss es an der Ansteuerung vom GPIO liegen. Vielleicht stimmt ja was mit deinem Programm nicht. Wie schaltest du den GPIO? Poste doch mal das Programm.
Der Motor läuft normal wenn ich ihn an die Batterie klemme. Das Python Skript:
"""import RPi.GPIO as gpio
import timex = 16
gpio.setmode(gpio.BOARD)
gpio.setup(x, gpio.OUT)gpio.output(x, gpio.HIGH)
time.sleep(0.1)
gpio.output(x, gpio.LOW)gpio.cleanup()
"""
Das Skript wird mehrmals hintereinander ausgeführt.
Der Transistor funktioniert (wenn ich den Output länger laufen lasse, ruckelt der Motor nicht). Kann es vielleicht sein, dass die GPIO Pins zu "langsam" sind?
Automatisch zusammengefügt:Ja, damit begrenzt du den Strom durch den Transistor (Zwischen GPIO und Transistor) (Schutz des Pi) und sorgst dafür, dass der Transistor immer einen definierten Pegel hat (Pulldown-Transistor zwischen GND und Transistor).
PS: Reden wir hier eigentlich von einem Mosfet oder von einem Transistor?
Von einem Transistor (siehe Amazonlink weiter oben). Okay dann baue ich die Widerstände ein, danke.
-
In deinem Programm steht, dass der Motor 0,1 Sekunden laufen soll und dann schaltest du ihn wieder ab und löscht die Programmierung der GPIOs.
Er tut genau das, was du programmiert hast... Wenn du mal 0,1 auf 3,0 erhöhst, läuft dein Motor vermutlich 3 Sekunden...
Das Skript wird mehrfach hintereinander ausgeführt? Von wem oder was? Rufst du es in einer Endlosschleife auf? Das leuchtet mir nicht ein. -
Snowball !
Dann steck den Motor nochmal direkt an die 3,3 V Quelle und ein Amperemeter dazwischen.
Ein A47 Vergleichswert von http://www.weisd.com/store2/NTE287.pdf
hat selbst bei 10 V nur ein hFE von 25-40
V BE(sat) von 0,9 V (IC = 20mA, IB = 2mA)
Continuous Collector Current, IC 500mAIm 3,3 V Bereich irgendwie nicht ganz "universal"
Wird der Transistor in der Schaltung nicht heiß ?Servus !
Edit: Wenns nur die Software ist, dann lass den NPN noch so, allenfalls V BE auf 0,9 Volt (statt 3,3 V) vermindern
-
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!