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

Raspberry Pi: Motor über ULN2003A steuern (mit Python und GPIO Zero)

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()

# 1 Sekunde 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.

Weitere verwandte Themen:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition
Raspberry Pi + Python + 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

Mehr Informationen Elektronik-Set jetzt bestellen

Teilen:

Elektronik-Set Raspberry Pi Edition
Raspberry Pi + Python + GPIO Zero
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

Mehr Informationen Elektronik-Set jetzt bestellen

Elektronik-Set Starter Edition
Elektronik-Set "Starter Edition"

Elektronik erleben und experimentieren

Perfekt für Einsteiger und Widereinsteiger

  • Elektronik-Einstieg ohne Vorkenntnisse
  • Schnelles Verständnis für Bauteile und Schaltsymbole
  • Ohne Lötkolben experimentieren: Bauteile einfach stecken

Mehr Informationen Elektronik-Set jetzt bestellen