die anderen treiber haben die gleichen abmessungen und die gleichen anschlüsse, wie mir scheint. Also auch zum späteren zeitpunkt einsetzbar, denke ich. Aber danke für die ausführungen
Deswegen hatte ich das erwähnt, falls Du später evtl. ein Problem haben solltest, dass Du gleich einen Ausweg parat hast. Allerdings ist es so, dass meine NEMA17, die ich zuhause habe (heute Morgen nochmals ins Datenblatt geschaut) 1.5A Nennstrom haben, bei 2.xV (2.5 .. 2.8V). Die Spannung am Treiber soll möglichst hoch sein, damit bei schnellen Umdrehungen viel Kraft aufgebaut werden kann. 24V wären da evtl. überlegenswert.
Um nochmal einen Tip zu der Treibersteuerung zu geben:
Die ist wirklich sehr, sehr einfach. Einfach die Steuerpins eines Treibers mit Pins vom Arduino verbinden und Quellen zur Ansteuerung durchlesen und programmieren. Ich würde keine LIB von jemand anderem verwenden. Ich hatte Dir ja schon Quellen geschickt.
Step und Dir brauchst Du ja auch nur, um einen Schritt (Step) in die eingestellte Richtung (Dir) zu machen. Ansonsten kannst Du noch Vollschritt, Halbschritt, 16tel Schritt etc. über die Steuerpins einstellen (damit kann mal herumprobieren - ist recht interessant aber nicht "überlebenswichtig").
Ich sehe gerade: runToPosition();
Ein Stepper ist ja kein Servo. Eine bestimmte Position anzufahren, ist mit einem Stepper nur möglich, wenn Du die Ausgangslage kennst. Der kann soundsoviele Schritte pro Umdrehung machen (steht in der Doku wieviele), das ist alles.
Vieles oder einiges wirst Du schon wissen ... nur nochmal so erwähnt.
Ich habe mir nochmals Mühe gemacht und die essentiellen Sachen zur Steppersteuerung, mit dem 4988, aus meinem Blog kopiert, um zu ermutigen:
Code:
//-----------------------------------------------------------------------------
//A4988
#define Dir 8
#define Step 9
#define Sleep 10
#define MS3 11
#define MS2 12
#define MS1 13
//-----------------------------------------------------------------------------
//Ausgänge für Motortreiber
pinMode(Dir, OUTPUT);
pinMode(Step, OUTPUT);
pinMode(Sleep, OUTPUT);
pinMode(MS3, OUTPUT);
pinMode(MS2, OUTPUT);
pinMode(MS1, OUTPUT);
//-----------------------------------------------------------------------------
//Den Schrittmodus am Motortreiber einstellen:
//-----------------------------------------------------------------------------
void StepMode(byte mode){
switch(mode){
case 0:
digitalWrite(MS1, LOW);
digitalWrite(MS2, LOW);
digitalWrite(MS3, LOW);
break;
case 1:
digitalWrite(MS1, HIGH);
digitalWrite(MS2, LOW);
digitalWrite(MS3, LOW);
break;
case 2:
digitalWrite(MS1, LOW);
digitalWrite(MS2, HIGH);
digitalWrite(MS3, LOW);
break;
case 3:
digitalWrite(MS1, HIGH);
digitalWrite(MS2, HIGH);
digitalWrite(MS3, LOW);
break;
case 4:
digitalWrite(MS1, HIGH);
digitalWrite(MS2, HIGH);
digitalWrite(MS3, HIGH);
}
}
//-----------------------------------------------------------------------------
//einen Schritt machen:
digitalWrite(Step, HIGH);
delayMicroseconds(i); //i bestimmt die Pause zwischen den Signalflanken und damit die Geschwindigkeit (abhängig vom eingestellten Step-Mode)
digitalWrite(Step, LOW);
delayMicroseconds(i);
//-----------------------------------------------------------------------------
//Richtung bestimmen:
digitalWrite(Dir,LOW); //digitalWrite(Dir,HIGH);
//-----------------------------------------------------------------------------
//Die Motor Start-/Stopfunktionen. Wie man sieht, wird hier nur der Treiber schlafen geschickt; damit wird der Motorstrom abgeschaltet.
//Wird der Motor hier "gestartet", wird er unter Strom gesetzt, dreht sich aber noch nicht.
void power_a4988_disable(){
digitalWrite(Sleep, LOW);
}
void power_a4988_enable(){
digitalWrite(Sleep, HIGH);
}
MfG
Lesezeichen