Go Down

Topic: quadstepper motor con motori in diverse velocità (Read 491 times) previous topic - next topic

mantissa00

ciao a tutti! ho acquistato questa scheda per controllare 4 stepmotor:
https://www.sparkfun.com/products/10507
funziona perfettamente!
solo che non riesco a capire come far andare i motori a diverse velocità..

usando questo codice:
Code: [Select]
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..

uwefed

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

mantissa00

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

uwefed

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

mantissa00

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

uwefed

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

Go Up