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
Game Controller selber bauen / programmieren?

Wie kann ich mir einen Gamecontroller selber bauen? Evt. mit einem Arduino ?

Mein Vorhaben ist (siehe Bild) meinem Laptop seitlich ein paar Griffe (3d-Gedruckt) zu verpassen und dort hinein in den Griff, die Controllersteuerung einzubauen. Ähnlich wie bei der Switch vom Konzept. Nun brauch ich ein System oder Bauteile mir einen Custom Controller zu bauen. Ziel sollte sein, vom Umfang die Funktion eines Xbox oder PS Controllers ab zu bilden.

Ähnlich wie das Steamdeck soll das teil später genutzt werden.

Mein erstes Versuch war es einen Xbox Controller zu schlachten und diese Technik zu verwenden, dafür ein 3d-gedrucktes Gehäuse in der die Knöpfe und Steuersticks passen und per USB ein zu stecken, jedoch sind diese alle auf einer Platine und somit nicht lageunabhängig.

Ich habe mal aufgezeichnet wie die Knöpfe angeordnet sein sollte, ich suche hier die Technik für in das Gehäuse. Das Gehäuse selbst kann Dank 3D-Druck beliebig konstruiert werden.

Der Laptop hat unter anderem Touch, was sich dafür eignet bequem Windows zu bedienen.

Ich hoffe ihr habt verstanden was ich suche, und ihr könnt mir helfen.

Vielen Dank :D

EDIT: Ich habe das ganze über einen Arduino Leonardo realisieren können, mit dem funktionsumfang eines Xbox Controllers. Der Leonardo kann einfach als USB-Device verwendet werden - z.B. um eine Tastatur oder Maus zu emulieren. Und das Zubehör kann auch easy über Berrybase, Alixpress...etc. beschafft werden.

Beim Code bin ich aktuell noch dran.

Bild zum Beitrag
Computer, Computerspiele, Technik, Elektronik, programmieren, Arduino, Technologie, Controller, 3D-Drucker, Raspberry Pi, Spiele und Gaming

Meistgelesene Beiträge zum Thema Arduino