quadstepper motor con motori in diverse velocità

ciao a tutti! ho acquistato questa scheda per controllare 4 stepmotor:

funziona perfettamente!
solo che non riesco a capire come far andare i motori a diverse velocità..

usando questo codice:

void oneStep(int STEP_PIN, int delay_velocity) {
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(delay_velocity); 

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(delay_velocity);
}

void loop() {
    oneStep(6, 100);
    oneStep(8, 600);
}

i motori vanno, ovviamente, alla stessa velocità.. non capisco bene il perchè, ma immagino sia qualcosa che c'entra con il delayMicroseconds.. penso ci vorrebbe qualcosa di asincrono per farli andare alla stessa velocità e la delay è bloccante...

ho letto in giro che la libreria Stepper dell'IDE Arduino non va bene con questa scheda (o con la EasyDriver, che funziona con lo stesso codice..) e quindi vorrei avere qualche delucidazione a riguardo..

se disegni un diagramma di flusso del Tuo sketch lo capisci:

fai un passo al primo motore e poi un passo di diverse tempistiche del secondo. In pratica 1 passo al primo e poi 1 passo al secondo e poi 1 passo al primo e 1 passo al secondo ecc. Non potranno mai andare a velocitá diverse.

Ciao Uwe

si come immaginavo.. e c'è un modo di farli andare a velocità diverse con 1 arduino?

Per pilotare un step su quei driver basta un impulso di 1µS puoi fare con millis 2 cicli indipendenti che ogni volta che é passato il tempo manda un impulso.
ciao Uwe

ok grazie mille ma scusa dove hai trovato che funzionano in 1u di secondo? e cosa vuol dire? che arduino va molto più veloce?

Sul datasheet del A4983 http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Widgets/A4983SETTR-T-Allegro-datasheet-123643.pdf ta e tb sul diagramma della figura1 Logic Interface Timing Diagram a pagina 6

Ciao Uwe