rendere fluido e lento il movimento dello Stepper 28BYJ-48 + ULN2003 per astroir

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.

Buonasera,
prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post ...

... poi, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione il su citato REGOLAMENTO ...

... infine, in conformità al suddetto regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e tolti i colori, racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice NON deve essere a colori, ma dovrà trovarsi racchiuso tra due tag:

[code] _il _tuo_ codice_ [/code]

così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Il tuo post è già stato spostato nell'opportuna sezione del forum "Italiano”dove puoi proseguire la discussione.
P.P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. :wink:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.