Jetzt werde ich die ersten Gehversuche mit einem Schrittmotor wagen. Ich verwende dazu den schon aus dem letzten Teil bekannten Arduino Nano, einen Treiberbaustein Pololu DRV8825 und natürlich einen Schrittmotor.
Der Schrittmotor hat die Typbezeichnung 17HS5425. Wichtig ist daran eigentlich nur, dass es ein bipolarer Schrittmotor ist. Daher hat er 2 Paare Anschlussdrähte, die jeweils eine Motorwicklung ansteuern.
Die Schaltung ist eigentlich zwischen DRV8825 und dem etwas bekannteren Typ A4988 gleich. Besser gesagt, in eine Schaltung für einen A4988 kann man auch einen DRV8825 einsetzen. Andersrum ist das nicht sichergestellt. Ich verwende deshalb diese Schaltung:
In dieser Schaltung kann sowohl der A4988 als auch der DRV8825 verwendet werden, auch wenn eine Pinbezeichnung verändert ist. Beim DRV8825 gibt es einen FAULT-Eingang. Der gleiche Pin ist am A4988 mit VDD bezeichnet. Und tatsächlich wird dieser Pin auch mit der Ausgangsspannung des Nano beschaltet. Am Nano ist das der PIN „+5V“. Der liefert beim Anschluss an USB (oder andere) Strom. Zum Vergleich die A4988-Schaltung.
In dieser Schaltung bleibt bei mir „logic power supply“ unbeschaltet, da ich den Nano mit USB-Strom versorge. Am Arduino Nano gibt es übrigens für GND zwei Pins, die zu verbinden sind.
Kleine Hintergrundinfo:
Am DRV8825 ist FAULT intern über einen Widerstand mit SLEEP verbunden. Somit macht dann auch die Brücke zu RESET Sinn.
VMOT und GND werden mit der Stromversorgung für den Schrittmotor versorgt. Ja, da benötigt man extra Strom. Deshalb ja auch der Treiberbaustein. Denn der stellt den Motorwicklungen gezielt Strom zur Verfügung. Die läppischen Milliampere über USB reichen da bei Weitem nicht. Die Stromversorgung sollte unbedingt mit dem 100 µF (Mikrofarad) -Elko geglättet werden. Jetzt noch den Schrittmotor selbst anschließen und die Schaltung ist fertig. Die Verbindung zum Schrittmotor sollte unbedingt sehr sicher angelegt werden. Sollte auch nur ein Pin während des Betriebs keinen Kontakt haben löst sich der Treiberbaustein per Rauchwolke in wertlosen Schrott auf.
Zuletzt darf natürlich die Datenverbindung zwischen Nano und Treiberbaustein nicht fehlen. Welche Pins am Nano genommen werden ist egal, solange es digitale Pins sind. Die analogen sollten hier nicht genommen werden. Ich habe Pin D2 und D5 genommen.
Hier (Youtube) noch ein kleines Video zur Schaltungserklärung auf dem Breadboard.
Nachdem alles verdrahtet ist, kontrolliert wurde und die 12V-Stromversorgung für den Schrittmotor eingeschaltet ist lade ich ein erstes extrem simples Testprogramm auf den Arduino Nano. Einziges Ziel ist die Funktionskontrolle der Schaltung.
Zum leichteren Kopieren nochmal als Text …
/* Schrittmotor alle 200ms ein Schritt in eine Richtung. This example code is in the public domain. */ void setup() { // setzen der Digitalpins 1 und 2 als Ausgang. pinMode(5, OUTPUT); pinMode(2, OUTPUT); } void loop() { digitalWrite(5, HIGH); // DIR an Pin D5 digitalWrite(2, HIGH); // STEP an Pin D2 delay(100); // warte eine zehntel Sekunde digitalWrite(2, LOW); // Gnd an Pin D2 delay(100); // warte eine zehntel Sekunde }
Das Programm habe ich vor einiger Zeit in einem Forum entdeckt und gleich kopiert. Leider finde ich die Quelle nicht wieder. Auch wenn es als PD gekennzeichnet ist: Wenn jemand die Quelle weiß, wäre ich für den Hinweis dankbar.
Wenn das Programm übertragen wurde, sollte sich der Schrittmotor im Zehntelsekundentakt in Bewegung setzen. Bei mir hat es auf Anhieb funktioniert.