Schaltkreis aus TMC2209, Arduino Uno und Nema 17

Hallo in die Runde,

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.

Vielen Dank schon mal für die Hilfe!

Was fehlt ist auf jeden Fall der Low ESR Stützkondensator.

Die üblichen Stepper Libs haben Beispiele dabei.
AccelStepper
Moba Tools

Kann ich als Kondensator einfach einen 150 uF Kondensator zwischen Pluspol und Minuspol der Stromversorgung schalten?

Einen Low ESR Kondensator!
Low ESR!

Möglichst nahe an den Versorgungspins des Treibers,

  1. Da Du das Modell des Motors nicht genannt hast, können wir nicht kontrollieren ob der Motor zum Treiber paßt.
  2. 24V Versorgungsspannung für den Motor wären besser als 12V.

Grüße Uwe

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

Erklärung zu low-ESR-Kondensatoren

vgs

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.