Raspberry Pi Pico: DC-Motor steuern (mit ULN2003A)

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 manuellen Bedienen, also zum Einschalten und Ausschalten, eignen sich meistens Taster oder Schalter. Zur elektrischen Steuerung werden oft Relais, Halteschaltungen, mit und ohne Zeitgeberschaltung verwendet.

Zur Steuerung eines Motors mit dem Raspberry Pi Pico wird ein GPIO als Ausgang genutzt. 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. Wenn der Motor mit 12 Volt läuft, dann funktioniert das mit den 3,3 oder 5 Volt vom Raspberry Pi Pico natürlich nicht.

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 Pico geschaltet werden kann.

Zur Steuerung eines Motors kann man eine Treiber-Schaltung mit Transistor und Freilaufdiode verwenden. Oder, was viel einfacher ist, ein ULN2003A-IC. Da ist eine Treiber-Schaltung, die 7-fach in einem Bauteil integriert ist.

Der folgende Aufbau ist nicht universell, sondern berücksichtigt die Besonderheiten der Ansteuerung des ULN2003A mit einem Motor.

Aufbau und Bauteile

Raspberry Pi Pico: Motor steuern (mit ULN2003A)

Hinweise zum Aufbau und Betrieb

  • Beachte bitte, dass der ULN2003A gegen Ground (GND) schaltet. Beim Verschalten von Bauteilen, 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 USB-Port mit Strom versorgt.
  • Was wichtig ist, dass man weiß, dass abhängig vom verwendeten Netzteil/Computer, der Aufbau funktionieren kann, oder auch nicht.

Schnell und einfach alle Bauteile zusammen bestellen

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 machine import Pin
from time import sleep

# Initialisierung von GPIO14 als Ausgang
device = Pin(14, Pin.OUT, value=0)

# LED einschalten
print('EIN')
device.on()

# 3 Sekunden warten
print('.')
sleep(1)
print('.')
sleep(1)
print('.')
sleep(1)

# LED ausschalten
print('AUS')
device.off()

Darf es ein bisschen mehr sein?

Als nächstes wollen wir uns mit der Ansteuerung eines Relais-Boards versuchen.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren