Raspberry Pi: Motor über ULN2003A steuern (mit Python und GPIO Zero)
Motoren findet man überall, wo etwas bewegt werden muss. Zum Beispiel Fahrzeuge, Ventilatoren oder Antriebe zum Öffnen und Schließen.
Diese Motoren und Antriebe laufen nicht dauerhaft, sondern nur wenn etwas bewegt werden soll. Zum manuell Bedienen, also zum Einschalten und Ausschalten, eignen sich meist Taster oder Schalter. Zur elektrischen Steuerung gibt es oft Relais, Halteschaltungen, mit und ohne Zeitgeberschaltung.
Zur Steuerung eines Motors mit dem Raspberry Pi kann ein GPIO genutzt werden, der als Ausgang programmiert wird. Allerdings darf ein Motor nicht direkt mit dem GPIO-Ausgang verbunden werden. Denn ein GPIO-Ausgang eignet sich nicht zur Stromversorgung des Motors. Ein Verbraucher, wie ein Motor, braucht immer eine eigene Stromversorgung. Zum Beispiel ein Netzteil. Unabhängig davon muss zwischen GPIO-Pin und Verbraucher eine Treiber-Schaltung oder ein potentialfreier Kontakt geschaltet werden, damit der Verbraucher, in dem Fall der Motor, unabhängig vom Raspberry Pi geschaltet werden kann. Wenn der Motor mit 12 Volt läuft, dann funktioniert das mit den 3,3 oder 5 Volt vom Raspberry Pi nicht.
Zur Steuerung eines Motors kann man eine Treiber-Schaltung mit Transistor und Freilaufdiode verwenden. Oder, was viel einfacher ist, einen ULN2003A-IC. Da ist die Treiber-Schaltung 7-fach in einem Bauteil integriert.
Der folgende Aufbau ist nicht universell, sondern berücksichtigt die Besonderheiten der Ansteuerung des ULN2003A mit einem Motor.
Aufbau und Bauteile
Hinweise zum Aufbau und Betrieb
- Beachte bitte, dass der ULN2003A gegen Ground (GND) schaltet. Beim Verschalten von Bauteile, die hiervon abweichen kann das Verwirrung stiften.
- Motoren sind Verbraucher, die einen vergleichsweise hohen Strom verbrauchen. Insbesondere beim Anlaufen. Also im Einschaltmoment. In der aufgebauten Schaltung wird der Motor über die 5-Volt-Leitung vom Raspberry Pi mit Strom versorgt.
- Was wichtig ist, dass man weiß, dass abhängig vom Raspberry-Pi-Model und vom verwendeten Netzteil, der Aufbau funktionieren kann, oder auch nicht. Im günstigsten Fall wird im Desktop rechts oben die Meldung „Low voltage warning. Please check your power supply.“ erscheinen. Das heißt nichts anderes, als dass die Belastung durch den Motor die Versorgung im Raspberry Pi zur Unterspannung führt. Wenn man das nicht abstellt, wird der Raspberry Pi einfach abstürzen. Im schlimmsten Fall wird der Raspberry Pi sofort ausgehen, weil das Netzteil nicht genug Strom liefert.
- Stelle für den Dauerbetrieb von externer Beschaltung eine eigene Stromversorgung bereit (Netzteil). Nur so ist ein problemloser Betrieb möglich.
Programmcode
Das Programm funktioniert vergleichsweise einfach. Der GPIO wird mit „on“ auf „High“ gesetzt und bleibt so für 3 Sekunden. In dieser Zeit läuft der Motor. Danach wird der GPIO mit „off“ auf „Low“ gesetzt und der Motor geht aus.
# Bibliotheken laden from gpiozero import DigitalOutputDevice from time import sleep # Initialisierung von GPIO3 als digitaler Ausgang für Motor-Steuerung motor = DigitalOutputDevice(3) # 1 Sekunde warten sleep(1) # Motor einschalten motor.on() # 3 Sekunden warten sleep(3) # Motor ausschalten motor.off()
Darf es ein bisschen mehr sein?
Als nächstes wollen wir uns mit der Ansteuerung eines Relais-Boards versuchen.
Highlights: Elektronik mit dem Raspberry Pi
- Raspberry Pi: LED einschalten und ausschalten (mit Python und GPIO Zero)
- Raspberry Pi: Taster-Zustand auswerten und anzeigen (mit Python und GPIO Zero)
- Raspberry Pi: Motor über ULN2003A steuern (mit Python und GPIO Zero)
- Raspberry Pi: Relais-Board über ULN2003A steuern (mit Python und GPIO Zero)
- Raspberry Pi: Herunterfahren per Taster (mit Python und GPIO Zero)
Alternative: Elektronik mit dem Raspberry Pi Pico
Raspberry Pi Pico ist ein Mikrocontroller. Er ermöglicht Dank vieler analoger und digitaler Eingänge und Ausgänge vielfältige Anwendung im Bereich der Steuerung von elektronischen Bauteilen, Sensorik, Robotik und Automation.
Weitere verwandte Themen:
- Elektronik mit dem Raspberry Pi
- Raspberry Pi: GPIO - General Purpose Input Output
- Raspberry Pi: GPIO steuern und programmieren
- Raspberry Pi: GPIO mit Python und GPIO Zero programmieren
Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero
Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Verschiedene Zustände auswerten und anzeigen lassen
- LED mit Taster einschalten und ausschalten
- Relais-Board steuern
- LED, Relais-Board und Motor über ULN2003A steuern
- Ampel- und Lauflicht-Steuerung
- Herunterfahren per Taster
- Reaktionsspiel mit Tastern und LEDs
- Eigene Steuerungen programmieren
Teilen:
Elektronik-Set Raspberry Pi Edition
Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero
- Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
- Experimentieren und Programmieren ohne Vorkenntnisse
- Sofort Loslegen mit All-in-one-Set
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.