Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie tiefer ein in Raspberry Pi, Arduino und ESP32 mit anderen Begeisterten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezielle Rabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Giveaways: Nehmen Sie an Giveaways und Feiertagsaktionen teil.
👉 Bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie [hier] und treten Sie heute bei!
3.5 Steuerung eines kleinen Ventilators (Gleichstrommotor)
In dieser Lektion lernen wir, wie man einen Gleichstrommotor (wie einen kleinen Ventilator) mit dem Raspberry Pi Pico 2 und einem L293D Motor-Treiber steuert. Der L293D ermöglicht es uns, die Drehrichtung des Motors zu steuern – sowohl im Uhrzeigersinn als auch gegen den Uhrzeigersinn. Da Gleichstrommotoren mehr Strom benötigen, als der Pico direkt liefern kann, verwenden wir eine externe Stromversorgung, um den Motor sicher zu betreiben.
Was Sie benötigen
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Newton Lab Kit |
450+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
SN |
KOMPONENTE |
MENGE |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
1 |
||
6 |
1 |
||
7 |
1 |
||
8 |
9V Batterie |
1 |
Schaltplan

Der L293D ist ein Motor-Treiber-Chip, EN ist mit 5V verbunden, damit der L293D funktioniert. 1A und 2A sind die Eingänge, die jeweils mit GP15 und GP14 verbunden sind; 1Y und 2Y sind die Ausgänge, die mit den beiden Enden des Motors verbunden sind.
Y (Ausgang) ist in Phase mit A (Eingang), daher kann die Drehrichtung des Motors geändert werden, wenn GP15 und GP14 unterschiedliche Pegel erhalten.
Verdrahtungsdiagramm
In diesem Schaltkreis sehen Sie, dass der Knopf mit dem RUN-Pin verbunden ist. Dies liegt daran, dass der Motor mit zu viel Strom betrieben wird, was dazu führen kann, dass der Pico von dem Computer getrennt wird, und der Knopf muss gedrückt werden (damit der RUN-Pin des Pico ein niedriges Niveau erhält), um zurückzusetzen.
Da Gleichstrommotoren einen hohen Strom benötigen, verwenden wir hier aus Sicherheitsgründen ein Netzteilmodul, um den Motor zu betreiben.
Code schreiben
Schreiben wir ein MicroPython-Programm zur Steuerung des Motors.
Bemerkung
Öffnen Sie die Datei
3.5_small_fan.pyausnewton-lab-kit/micropythonoder kopieren Sie den Code in Thonny, dann klicken Sie auf „Ausführen“ oder drücken Sie F5.Stellen Sie sicher, dass der richtige Interpreter ausgewählt ist: MicroPython (Raspberry Pi Pico).COMxx.
import machine
import utime
# Steuerpins definieren
motor_in1 = machine.Pin(14, machine.Pin.OUT)
motor_in2 = machine.Pin(15, machine.Pin.OUT)
def rotate_clockwise():
motor_in1.high()
motor_in2.low()
def rotate_counterclockwise():
motor_in1.low()
motor_in2.high()
def stop_motor():
motor_in1.low()
motor_in2.low()
while True:
rotate_clockwise()
utime.sleep(1)
stop_motor()
utime.sleep(1)
rotate_counterclockwise()
utime.sleep(1)
stop_motor()
utime.sleep(1)
Wenn der Code läuft, dreht sich der Motor eine Sekunde lang im Uhrzeigersinn, hält eine Sekunde an, dreht sich eine Sekunde lang gegen den Uhrzeigersinn und hält dann wieder eine Sekunde an, in einer Schleife.
Code verstehen
Initialisierung der Pins:
motor_in1undmotor_in2sind mit GP14 und GP15 verbunden und steuern die Drehrichtung des Motors.motor_in1 = machine.Pin(14, machine.Pin.OUT) motor_in2 = machine.Pin(15, machine.Pin.OUT)
Funktionen definieren:
rotate_clockwise(): Setztmotor_in1auf high undmotor_in2auf low, um den Motor im Uhrzeigersinn zu drehen.rotate_counterclockwise(): Setztmotor_in1auf low undmotor_in2auf high, um gegen den Uhrzeigersinn zu drehen.stop_motor(): Setzt sowohlmotor_in1als auchmotor_in2auf low, um den Motor anzuhalten.
Hauptschleife:
Der Motor dreht sich im Uhrzeigersinn, hält an, dreht sich gegen den Uhrzeigersinn und hält wieder an, jeweils eine Sekunde lang, wiederholt.
while True: rotate_clockwise() utime.sleep(1) stop_motor() utime.sleep(1) rotate_counterclockwise() utime.sleep(1) stop_motor() utime.sleep(1)
Fehlerbehebungstipps
Motor dreht sich weiter nach Stoppen des Skripts:
Wenn der Motor weiterläuft, nachdem das Programm gestoppt wurde, müssen Sie möglicherweise den Pico zurücksetzen. Verwenden Sie einen Draht oder einen Knopf, um den RUN-Pin kurzzeitig mit GND zu verbinden, was den Pico zurücksetzt.

Pico trennt sich oder reagiert nicht mehr:
Der Motor kann zu viel Strom ziehen, was zu Spannungsschwankungen führt. Stellen Sie sicher, dass Sie eine separate Stromversorgung für den Motor verwenden und dass alle Masseverbindungen angeschlossen sind.
Schlussfolgerung
In dieser Lektion haben Sie gelernt, wie man einen Gleichstrommotor mit dem L293D Motor-Treiber und dem Raspberry Pi Pico 2 steuert. Sie können jetzt die Drehrichtung des Motors steuern und Projekte wie einen kleinen Ventilator oder ein motorisiertes Gerät erstellen.
Nächste Schritte
Geschwindigkeitskontrolle: Versuchen Sie, die Geschwindigkeit des Motors mit PWM (Pulsweitenmodulation) zu steuern, indem Sie den EN1-Pin an einen PWM-fähigen GPIO-Pin anschließen.
Mehrere Motoren steuern: Verwenden Sie die anderen Kanäle des L293D, um zusätzliche Motoren zu steuern.
Sensorintegration: Integrieren Sie Sensoren, um den Motor basierend auf Eingaben (z. B. Temperatur, Licht) zu steuern.
