Arduino Stepper Motor mit TMC2208 ansteuern?


23.02.2024, 12:39

Hi. Ich möchte einen Schrittmotor am Arduino uno 3 mit dem TMC2208 Treiber ansteuern so dass er exakt eine Umdrehung in der Minute macht. Und Brauch dafür den Code. Bin absolute Neuling auf diesen gebiet. Danke schon mal im Voraus für eure Hilfe


24.02.2024, 16:25

Anders gefragt wer kann mir dabei helfen meinen Nema 17 Schrittmotor so zu programmieren das er sich in einer Minute einmal um seine eigene Achse dreht. Bin dabei eine Kugel Uhr zu bauen. Benutze UNO R3 mit einen Schrittmotor Treiber TM 2208 und Arduino. Diesen Cod verwende ich zurzeit

  #define EN_PIN 7        

#define STEP_PIN 8

#define DIR_PIN 9 //direction

     

 

#include <TMC2208Stepper.h>      

TMC2208Stepper driver = TMC2208Stepper(&Serial);              

 

void setup() {

 Serial.begin(5200);      

 while(!Serial);        

 

 pinMode(EN_PIN, OUTPUT);

 pinMode(STEP_PIN, OUTPUT);

 pinMode(DIR_PIN, OUTPUT); // set the DIR_PIN as an output

 

 driver.pdn_disable(1);       

 driver.I_scale_analog(0);     

 driver.rms_current(500);      

 driver.toff(0x1);       

 

 digitalWrite(7, LOW);  

}

 

void loop() {

 

 digitalWrite(STEP_PIN, !digitalRead(STEP_PIN));

 delay(18);

 

 

 geht aber nicht genau, entweder zu schnell oder zu langsam.

Danke

1 Antwort

Du musst die Takte mit der millis()-Funktion bestimmen/berechnen.

Eine Variable deklarieren:

unsigned long millisave;

init()

{

millisave=millis();

}

loop()

{

do

{

} while (millis()<millisave+300);

... Schrittmotorschritt ...

millisave=millis();

}

Keien Garantie, ob das so läuft bzw. die Zeiten passen. Ist bei Vollschritt-Betrieb, 200 Schritte, 200 Schritte entsprechen 0,3 Sekunden, millis miss in Millisekudnen,d aher die 300.

Gizzmor 
Fragesteller
 25.02.2024, 06:24

Hallo und Danke, aber ich habe vom Programmieren keine Ahnung. den Code oben habe ich aus dem Netz. ich weiß also nicht was ich da und wo eintragen soll. LG

0