Pages: [1]   Go Down
Author Topic: quadstepper motor con motori in diverse velocità  (Read 430 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 104
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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..
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 251
Posts: 21250
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 104
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

BZ (I)
Online Online
Brattain Member
*****
Karma: 251
Posts: 21250
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 104
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

BZ (I)
Online Online
Brattain Member
*****
Karma: 251
Posts: 21250
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: