Ciao a tutti. Sto usando la libreria accelstepper per muovere un motore usando un driver A4988.
La libreria mi permette di controllare la velocità e la posizione finale del motore, ma io avrei bisogno di un qualcosa in più.
Avrei bisogno di controllare in quanto tempo il motore va da una posizione A ad una posizione B, per esempio da 10° a 90° in 6 secondi.
Ora, se fosse un movimento a velocità costante credo che basterebbe calcolare la velocità necessaria e utilizzarla come parametro per il movimento.
Ma nel mio caso devo utilizzare anche l'accelerazione e la decelerazione.
Sapete se la libreria ha delle funzioni che permettono di fare questa cosa? Oppure se ci sono delle soluzioni già sperimentate da qualcuno.
Dopo tutto il giorno credo di aver trovato una soluzione, la ritenete valida?
In pratica ho pensato questo: basterebbe calcolare una velocità da tenere nel mezzo delle accelerazione e decelerazione per ottenere il movimento entro il tempo desiderato, quindi:
vel = gradiRotazione / (tempoRotazione - (2 * secondiRampa))
Ovvero la velocità da tenere nel mezzo sarebbe pari ai gradi da ruotare diviso il tempo di percorrenza tranne le due rampe.
secondiRampa = accelerazione / vel
Ovvero i secondi richiesti per fare la rampa sono l'accelerazione impostata diviso la velocità (dall'equazione di prima)
Mettendo queste due equazioni in un sistema posso ottenere:
Secondi di rampa (s)
Velocità richiesta (°/s)
Ovviamente poi andrà fatta la conversione da °/s a step/s. Potrebbe funzionare?