Schrittmotor am Raspberry Pi

Schrittmotor am Raspberry Pi Titelbild

Schrittmotor

Ein Schrittmotor ist ein Motor, der sich sehr genau steuern lässt. Anders als andere Motoren dreht er sich nicht einfach vorwärts oder rückwärts, abhängig von der Spannung. Ein Schrittmotor dreht sich immer nur ein ganz kleines bisschen. Unser braucht 512 Schritte für eine ganze Umdrehung. Es gibt verschiedene Arten von Motoren, mache haben mehr oder weniger Schritte. Durch diese Steuerungsmöglichkeit ist es möglich, sehr genaue Bewegungen auszuführen. Schrittmotoren werden zum Beispiel in 3D Druckern benutzt. Man kann damit aber auch einen Stift auf Papier steuern. Wenn man beispielsweise weiß, dass 3210 Schritte des Motors den Stift um 1 cm bewegen, dann ist es sehr leicht den Stift nicht einen, sondern 4 cm fahren zu lassen. Über die Steuerung von elektromagnetischen Feldern wird sichergestellt, dass der Motor sich immer nur ein kleines Stück drehen kann. Wir steuern diese Felder über vier GPIO Pins. Diese werden nacheinander aktiv geschaltet und ermöglichen es dem Motor so, einen Schritt zu machen. Jeder Schritt des Motors besteht aus einer Folge von aktiven GPIO Pins. Deswegen brauchen wir auch vier GPIO Pins, um den Motor zu steuern.

In unserem Projekt nutzen wir den Schrittmotor, um den Zeiger, der die Minuten anzeigt, zu bewegen. Den Zeiger findest du ebenfalls in dem Kit. Er ist übrigens mit unserem 3D Drucker gedruckt und dieser Drucker benutzt ebenfalls Schrittmotoren. Jetzt bringen wir den Motor an unserem Projekt an.

Motor einbauen

Mit einem spitzen Bleistift oder Kugelschreiber machst du in der Mitte des Ziffernblattes ein kleines Loch. Jetzt steckst du den Motor von hinten durch das Loch, so dass vorne nur ein kleiner Teil raus guckt.
Achte darauf, dass der Motor möglichst genau in der Mitte sitzt. Du kannst den Motor an der Halterung mit zwei Schrauben fest machen, es reicht aber auch wenn du von hinten zwei LEDs durch die Halterung schiebst und diese auf der Vorderseite umbiegst.

Neben deinem Motor gibt es in dem Kit eine kleine Platine, die den Motor steuert. Stecke den Stecker des Motors in die Platine.

Anschluss des Motor am Pi

Für den Motor brauchen wir 5V und GND und außerdem vier GPIO Pins am Raspberry Pi. Es ist egal, welche Pins ihr benutzt. Wir haben uns für 23, 24, 25 und 26 entschieden. Diese werden im Programm, das wir benutzen, um den Motor zu steuern, definiert.

Rasberry Pi Motor
GPIO 22 IN1
GPIO 23 IN2
GPIO 24 IN3
GPIO 25 IN4
GND GND
5V VCC

5V und GND findet ihr an der Seite der Steuerplatine. Dort gibt es auch einen Jumper, der verbindet die beiden Pins auf der rechten Seite. Der Motor kann auch mit 12V Strom betrieben werden. Für unseren Pfeil reichen 5V vom Raspberry Pi aber bei weitem aus.

Beim Schrittmotor gibt es mehrere Spulen, die nacheinander unter Spannung gesetzt werden und so den Motor ein klein wenig bewegen. Die Spulen und die Reihenfolge finden wir im Datasheet des Motors. Für unseren Motor sind es acht Schritte. Wir könnten unsere GPIO Pins am Raspberry Pi manuell ansteuern, aber das macht natürlich wenig Sinn. Deswegen haben wir ein kleines Programm geschrieben, dass die Motorsteuerung für uns übernimmt. Du kannst das fertige Script hier herunterladen:

http://cw42.de/p/motor.py
Das macht man mit dem Befehl

wget http://cw42.de/p/motor.py




Motor steuern

Das Programm, das den Motor steuert, sollte motor.py heißen. Wir rufen es durch folgenden Befehl auf:

python3 motor.py X

Das X steht dabei für die Anzahl der Schritte, die der Motor machen soll. Du kannst den Motor im Uhrzeigersinn bewegen, dann sind die Zahlen positiv, oder gegen den Uhrzeigersinn, dann musst du negative Zahlen verwenden. z.B.: python3 motor.py -512 für eine ganze Runde gegen den Uhrzeigersinn. Falls du den Motor an anderen GPIO Pins anschließen willst, musst du im ersten Teil des Programms die GPIO Pin-Belegung anpassen.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!