Arduino Stepper Motor mit TMC2208 ansteuern?

Hallo,

ich versuche gerade meinen Stepper Motor mit dem Arduino anzusteuern dazu nutze ich den Stepper Motor Treiber TMC2208. Ich habe jetzt das Problem, dass ich keine Ahnung habe wie ich den ansteuern kann. Im Internet habe ich jetzt schon lange gesucht viele machen das einfach mit der Stepper.h Bibliothek. Die die das machen haben aber alle nicht den Stepper Treiber.

Dann habe ich explizit nach Codes mit diesem Treiber gesucht und das gefunden:

#define EN_PIN    13 								
#define STEP_PIN  54 								

#include <TMC2208Stepper.h>							
TMC2208Stepper driver = TMC2208Stepper(&Serial);														

void setup() {
	Serial.begin(115200);							
	while(!Serial);									

	pinMode(EN_PIN, OUTPUT);
	pinMode(STEP_PIN, OUTPUT);

	driver.pdn_disable(1);							
	driver.I_scale_analog(0);						
	driver.rms_current(500);						
	driver.toff(0x2);								

	digitalWrite(13, LOW);			
}

void loop() {
	digitalWrite(STEP_PIN, !digitalRead(STEP_PIN));
	delay(10);
}

Diesen Code habe ich dann auch mal drauf geladen es hat alles funktioniert, das heißt der Stepper dreht sich durchgehend (Geschwindigkeit je nach delay Einstellung).

Mein Problem ist ich verstehe diesen Code nicht wirklich. Ich weiß, dass sich der Motor dreht weil der Zustand des StepPins ständig hin und her wechselt weiß aber nicht warum das so sein muss. Es wäre auch gut wenn mir jemand die Zeilen die mit driver. beginnen erklären könnte :D

Da ich den Code nicht richtig verstehe, kann ich ihn nicht nutzen um ihn auf meine Anforderungen umzubauen. Zum Beispiel , dass er nur zu einer Bedingung dreht und nur eine gewisse Zeit lang oder eine gewisse Anzahl an Steps. Kann mir jemand sagen wie ich das umsetzten könnte?

Geht das vielleicht auch komplett ohne die Treiber Bibliothek? (Nur mit der Stepper Bibliothek? Oder ganz ohne?)

Ich weiß das ist womöglich eine komplexe Frage wäre aber sehr dankbar wenn sie mir jemand beantworten könnte.

PS. Ich habe die Stepper und Treiber im Moment nicht bei mir bin aber was das Thema angeht recht im Stress deshalb muss ich versuchen den Code zu schreiben ohne ihn direkt ausprobieren zu können.

Vielen Dank :D

Computer, Technik, Programm, Elektronik, programmieren, Elektrotechnik, Motor, Arduino, Technologie

Meistgelesene Fragen zum Thema Programm