Motor mit Transistor steuern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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?

    Einmal editiert, zuletzt von Snowball27 (27. Mai 2017 um 12:18)

  • Hallo Snowball27,


    Gibt es dafür eine Lösung?


    eine externe Spannungsversorgung der Motoren, die durch die GPIO-gesteuerten Transistoren geschaltet werden

    Post bitte Deine Schaltuing - sonst weiß keiner, was Du wie verschaltet hast und was bei einem GPIO-Schaltvorgang eingeleitet wird.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (27. Mai 2017 um 11:17)

  • 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
    ?u=https%3A%2F%2Ftse2.mm.bing.net%2Fth%3Fid%3DOIP.yC9kwQjYIwbJ3iwM15z10QEsCv%26pid%3D15.1&f=1

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (27. Mai 2017 um 12:33)

  • Hallo Snowball23,

    dann installiere Dir mal Fritzing:

    Code
    sudo apt-get install fritzing


    und zeichne damit DEINE Schaltung.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • 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

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Snowball

    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 usw

    Servus !

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (27. Mai 2017 um 12:55)


  • 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]

    Einmal editiert, zuletzt von Snowball27 (27. Mai 2017 um 13:21)

  • 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.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!


  • 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?

    Einmal editiert, zuletzt von ChrisvA (27. Mai 2017 um 14:35)


  • 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 time

    x = 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.

    Einmal editiert, zuletzt von Snowball27 (27. Mai 2017 um 14:52)

  • 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.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • 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 500mA

    Im 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

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (27. Mai 2017 um 15:18)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!