Salve a tutte, mi permetto di chiedere il vostro aiuto perché sto costruendo un astroinseguitore motorizzato con stepper 28BYJ-48 e driver ULN2003, ma sono piu che nuovo per Arduino .. anzi lo sto cercando di imparare proprio grazie a questa occasione. Il mio problema è che devo far in modo che lo stepper faccia un giro fluido in 1 minuto siderale pari a 59,8362 secondi. Uso questo motore visto il basso costo e anche per far esperienza.
Dal datasheet del motore ho visto che ha un angolo di 5.625 e quindi un passo di 64 step che demoltiplicati internamente per 64 diventano 4096 step. Oltre a questo se non ho male capito il tempo minimo tra gli step del motore è di 2 millisecondi, cosa che interessa visto il piccolissimo movimento al minuto siderale che deve fare. Pertanto se gli steps per 1 giro sono 4096 e li motore deve fare in 59,8362 secondi questo vuol dire che il delay per step sarà di : 0,014608 secondi. pertanto io pensavo di usare un codice come questo :
"pinMode (motorPin4, OUTPUT);
}
// la funzione loop viene eseguita più e più volte per sempre
void loop () {
digitalWrite (motorPin1, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin2, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin3, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin4, HIGH);
delay (delayTime);
digitalWrite (motorPin1, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin2, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin3, HIGH);
delayMicroseconds (56,75);
digitalWrite (motorPin4, LOW);
delay (delayTime);
digitalWrite (motorPin1, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin2, HIGH);
delayMicroseconds (56,75);
digitalWrite (motorPin3, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin4, LOW);
delay (delayTime);
digitalWrite (motorPin1, HIGH);
delayMicroseconds (56,75);
digitalWrite (motorPin2, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin3, LOW);
delayMicroseconds (56,75);
digitalWrite (motorPin4, LOW);
delay (delayTime);
} "
ho pensato di divedere i microsecondi ed inserirli tra gli steps ..
Mi chiedevo se tutto ciò é' corretto ?? perché non ho modo di "misurare" il risultato se non a occhio..
Esiste un modo fluido di gestire queste piccolissime velocità ?
Grazie a tutti per l'aiuto.