perfekt, dann hatte ich da keinen Denkfehler :-).
Danke.
Jetzt bin ich an dem Punkt an dem es mit dem Code los geht.
Mein erster Test war erfolgreich ![]()
/*
Schritmotoren Steuerung
Treiber: SK8060 bis 6A
Steuerung: Takt und Richtung
Motor: Schrittmotoren 8,7 Nm 6 A
Mikrocontroller: Arduino Mega 2560
Datum: 22.09.2017
PUL = Takt fuer den Motor
DIR = Drehrichtung; HIGH = im Uhrzeigersinn, LOW = Gegen den Uhrzeigersinn
ENA = Treiber; ON = LOW, Off = HIGH (! Achtung Motor hat kein Haltemoment !)
Nebenrechnung:
1 Schritt = 1,8 Deg
200 Schritte = 1 Umdrehung
Der Treiber macht jedoch 1/2 Schritte daher
400 Schritte = 1 Umdrehung
*/
int PUL_Y = 51;
int DIR_Y = 52;
int ENA_Y = 53;
int i;
void setup() {
// Digitalen Pin = Ausgang
pinMode(PUL_Y, OUTPUT);
pinMode(DIR_Y, OUTPUT);
pinMode(ENA_Y, OUTPUT);
digitalWrite(DIR_Y, LOW);
} // void setup()
void loop() {
for (i = 0; i < 400; i++) {
digitalWrite(PUL_Y, HIGH);
delay(1);
digitalWrite(PUL_Y, LOW);
}
delay(1000); // 1 Sekunde
} // void loop()
Der Code macht immer eine volle Drehung (400 Schritte) und dann 1 Sekunde pause, das im Loop.
Jetzt stellt sich die Frage wie kann ich die Geschwindigkeit richtig regeln? woher wies ich welche Zeit schon vergangen ist und ich den Nächsten schritt machen muss.
Denn ein Schritt ist ja nur dann gemacht, wenn ich von LOW zu HIGH und wider zu LOW gelaufen bin.
Ich dachte das ich das schon mal gemacht habe, doch scheinbar war das ein Motor mit Gehirn
denn hat man die Anzahl der schritte und die zeit gesagt und den Rest hat er dann gemacht, das Programm kann ich also nicht verwenden.
Im den Weiten des Netzes habe ich eine Stepper LIB gefunden, doch die arbeitet pro Motor mit mehrerer Pins
wenn ich das richtig verstanden habe, ich habe pro Motor 1 Pin für den Takt, daher glaube ich das das nicht die Richtige LIB für mich ist.
Daher meine Frage an euch, wie berechne ich das richtig, so das ich die Drehzahlen richtig einstellen kann?
Gruß Mücke
Motor_001.gif
