// Funktion für Schrittmotor
void step(true,1600, 1000){
digitalWrite(dirPin,dir);
delay(50);
for(int i=0;i<1600;i++){
digitalWrite(stepperPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepperPin, LOW);
delayMicroseconds(1000);
}
}
rechne mal nach
Du machst 1600 Schritte und jedesmal 2 Millisekunden Pause.
Das sind (Trommelwirbel) 3200 Millisekunden oder 3,2 Sekunden ( ohne die Zeit für for und digitalWrite() zu berücksichtigen).
Wenn der 1 Runde pro sekund e machen soll dann muß er 1600 steps in 1 Sekunde machen, also 1 step alle 625µSekunden. das heißt Bei Symetrischen Rechteksignal an STEP ist das 312,5µS LOW und 312,5µS HIGH. Du kannst auch 300 LOW und 325 HIGH machen, das ist das selbe. Um die Sekunde genau zu haben mußt Du aber auch die Zeit berücksichtigen die Für die FOR-Schleife und für das digitalWrite() gebraucht werden. Das sind sicher etliche µS.
Grüße Uwe