ich bin noch recht neu in der Welt des Arduinos und bräuchte ein wenig Hilfe bei einem eigentlich recht einfachen Projekt. Ich möchte einen Nema 17 Motor mit konstanter Drehzahl drehen lassen, die ich jederzeit im Programmcode anpassen können soll. Weiterhin soll auch die Dauer der Drehung (z.B. 10 Stunden) im Code eingestellt werden.
Der Motor ist mit einem TMC2209 Motortreiber verbunden. Dafür habe ich die 4 Ausgänge des Motors mit den jeweiligen Pins (1A, 1B, 2A, 2B) des Treibers entsprechend der Spulen verbunden. Nun habe ich den Treiber wie folgt angeschlossen:
GND(Treiber)-GND(Arduino)
VDD(Treiber)-5V(Arduino)
ein anderer GND(Treiber)-Minuspol des Stromversorgungsgerätes
VMot(Treiber)-Pluspol des Stromversorgungsgerätes(12 V)
DIR(Treiber)-Pin3(Arduino)
STEP(Treiber)-Pin4(Arduino)
EN(Treiber)-Pin5(Arduino)
Erste Frage: ist diese Schaltung richtig oder fehlen Verkabelungen?
Zweite Frage: ich möchte einen Arduino Sketch schreiben, der genau die oben gestellten Anforderungen berücksichtigt. Zusätzlich soll bei dem Motor microstepping aktiviert werden, damit die Drehung möglichst vibrationsarm passiert. Wie könnte ein möglicher Code aussehen?
Ich konnte leider die Schaltung nicht testen, da mir das Wissen fehlt, den code zu schreiben. Selbst unter Zuhilfenahme von chatgpt habe ich es nicht geschafft, einen funktionierenden Sketch zu schreiben.
Wichtig zu beachten ist, dass man die Anschlüsse des Schrittmotors nur bei ausgeschalteter Versorgungsspannung anschließt oder abklemmt.
Wenn man das mit eingeschalteter Spannungsversorgung macht dann entstehen hohe Spannungsspitzen die dann den Schrittmotortreiber TMC2209 zerstören.
Dem Schrittmotortreiber muss auf den Spulenstrom des Schrittmotors eingestellt werden.
Gott sei Dank! Sobald man etwas spezielleres machen will als eine LED blinken zu lassen,versagt chatGPT. Der Name chatGPT ist gut gewählt. Chatten kann chatGPT rumlabern aber komplexe Programme schreiben probiert es dann mit Wahrscheinlichkeiten.
Und das geht schief sobald die Wahrscheinlichkeit unter 100,00% fällt.
Ich empfehle dir die MobaTools. Damit wird das kombinieren von Schrittmotorimpulsen erzeugen und weitere Dinge im Programm machen lassen wesentlich einfacher als mit AccelStepper.
Wenn man sich die MobaTools-library über den Libary-Manager der Arduino-IDE installiert hat gibt es einen Unterordner examples. Da sind mehrere kleine Demo-Programme drin. Mit denen kannst du anfangen zu testen.
Am einfachsten das
back_ForthStepperPause.ino Beispiel