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
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.
- Raspberry Pi Pico: Relais-Board steuern (ohne ULN2003A)
- Raspberry Pi Pico: Relais-Board steuern (mit ULN2003A)
Weitere verwandte Themen:
- Raspberry Pi Pico: Vibrationsmotor steuern
- Raspberry Pi Pico: 12-Volt-Lüfter steuern (mit ULN2003A)
- Raspberry Pi Pico: Servo-Motor SG90 steuern und testen
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Online-Workshop: 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.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)