Wird ein Elektromotor an eine Spannung angeschlossen, beginnt er sich zu drehen. Er hat einen Anlauf und einen Nachlauf. So kann man nie genau sagen, wie oft er sich gedreht hat. Der Schrittmotor im englischen (stepper motor) hat im Gegensatz zu einen normalen Elektromotor mehrere Wicklungen, die nacheinander Spannungen bekommen. So kann der Motor, wie der Name schon sagt einzelnen Schritte machen. So kann man genau sagen wie oft sich der Motor drehen sol und in welchen Geschwindigkeit er das tun soll.
Ich habe den Schrittmotor DAYPOWER S-SPSM-5V von pollin.de, mit Platine verwendet. Für die Programmierung mit Ardublock muss der Stepper Motor immer mit einer Platine verdrahtet sein, sonst kann der Ardublock „Schrittmotor Block“ den Schrittmotor nicht ansteuern.
Wie im Bild unten dargestellt, macht der Schrittmotor einzelnen Schritte bis zu einer vollen Umdrehung. Der Stepper von Daypower braucht für einen Umdrehung 46 Schritte.
Der Verdrahtung ist recht einfach. Die vier ersten Zahlen im Block werden mit vier beliebigen digitalen PINs des Arduino verbunden. Dabei ist nur darauf zu achten dass die richtigen Zahlen zu den richtigen Pins im Block eingetragen werden. Werden mehrere Motoren angeschlossen, dürfen die PINs nicht gleich sein.
Schrittmotor eins Schrittmotor zwei
- IN1 - 2 IN1 -7
- IN2 - 3 IN2 - 8
- IN3 - 4 IN3 - 9
- IN4 - 5 IN4 - 10
- Der VCC PIN bekommt 5 Volt vom Arduino
- Der GND PIN wird mit dem GND PIN des Arduino verbunden
Ardublock Schrittmotor Block
In den ersten vier Feldern werden die PINs eingetragen wie der Stepper angeschlossen ist. Im zweiten Feld (step per round) wird eingetragen wie viele Schritte der Motor braucht um sich um 360 Grad, also einmal ganz zu drehen. Ist diese Zahl nicht bekannt, kann ein 50 eingetragen werden.
Ich habe schon öfters die Rückmeldung bekommen, dass diese Einstellung nicht immer funktioniert. Mein Motor baucht 2048 Schritte für eine Runde. Bei mir tut es wunderbar. Mit der Zahl 50 würde es wohl bei den anderen auch tun. Also im Zweifelsfall einfach eine 50 Eintragen.
Im zweiten Block werden wieder die passenden PINS eingetragen und im Feld (speed) die Geschwindigkeit, mit der sich der Stepper drehen soll. Hier muss man kurz versuchen was der Motor kann. Mein Schrittmotor kann von 10-200 „Geschwindigkeit“ arbeiten. Hier einfach mal bei 10 anfangen und in großen Schritten bis 200 hochlanden. Dreht sich der Motor nicht mehr oder „wackelt“ dann ist es zu schnell oder langsam für den Motor.
Im letzten Feld (mb step) wird eingetragen wie viele Schritte der Stepper machen soll. Wird in diese Feld 1000 eingetragen macht der Motor 1000 Schritte mit der eingetragenen Geschwindigkeit und bleibt dann für 5 Sekunden stehen, macht 1000 Schritte und bleibt dann stehen.
!!! Wichtig ist bei diesem Block, dass die Software die eingetragenen Schritte macht und dann zum nächsten Block über geht. Während der Stepper also seine eingetragenen Schritte macht, befindet sich das Programm wie in einer DELAY Schleife und reagiert damit nicht auf Eingaben oder kann andere Aufgaben rechnen!!!
Schrittmotor Drehrichtung ändern
Bisher läuft der Motor immer nur in eine Richtung um die Richtung zu ändern müssen die PINs verändert werden. Dazu müssen die PINsin beiden Blöcken geändert werden, sonst kommt eine Fehlermeldung. Im Bespiel unten dreht der Stepper Motor seine Richtung nach 1000 Schritten und zwar ohne eine DELAY Zeit. Daran sieht man auch dass der Stepper Block erst seine "Schritte" abarbeitet bevor der nächste Block dran kommt.
Die Drehrichtung kann wie im Beispiel unten über zwei Taster bestimmt werden. Wenn Taster eins gedrückt wird, dann dreht sich der Stepper 2000 Schritte nach rechts. Wenn Taster zwei gedrückt wird, dreht sich der Stepper 2000 Schritte nach links.
Wer viele Steppermotoren oder viele Blöcke für die Stepper benötigt kann die Zuordnung der Motoren auch in den SETUP Block setzen. Die Zuordnung der Motoren muss nicht zwangläufig im LOOP Block liegen.
Weiter Möglichkeiten mit Ardublock Schrittmottoren anzusteuern
Die Schritte die der Stepper Motor machen soll müssen nicht unbedingt in der Feld eingetragen werden. Im linken Bild werden die Schritte über eine Variable an den Stepper übertragen. Im rechten Bild macht der Stepper immer nur einen Schritt, das aber so oft wie die eingestellte Wiederholung. Hier sollte ggf. noch eine Delay Zeit eingetragen werden, da sonst die Geschwindigkeit des Motors ggf. nicht stimmt,da ja nur ein Schritt gemacht wird.