Motore stepper: come controllare posizione

Salve. Sono I2SRM Michele Sirago. Mi sono presentato circa 2 anni fa.
Vorrei pilotare un motore stepper, leggerne su display la posizione e memorizzarla. Da qualche lettura compiuta mi pare cosa ardua. Occorrerebbe fare avanzare il motore (che controlla un pezzo da 18 giri in totale) fino ad un estremo, dando impulsi quanto basta, fermandoli con aiuto di fine corsa, e impostarne di nuovi fino al movimento desiderato. Un display lcd dovrebbe mostrare l'avanzamento fino alla posizione.
Questo mi è stato relativamente facile con motori CC e potenziometro per la posizione del pezzo, ma non so se si possa realizzare con lo stepper.
2 anni fa mi presentai in questo forum / sezione per un accordatore di antenna (3 pezzi da controllare. Ce l'ho fatta dopo diverso sforzo ed ora posso vedere su display posizione e richiamare una delle 10 posizioni impostate, memorizzarne di nuove o fare avanzamento manuale.
Ma ora volendolo riprodurre con motore stepper non mi è chiaro come raggiungere gli stessi obiettivi.
Prima di andare avanti vorrei avere un utile parere.
Grazie.

Guarda questo tutorial sul multitasking in Arduino che include un esempio completo di motore passo-passo controllato da un sensore e dall'input dell'utente

I motori passo-passo che si trovano più comunemente sono da 200 passi a giro, ovvero in un giro completo di 360° ci sono 200 posizioni "stabili".
Per aumentare la risoluzione angolare è cosa comune pilotarli a microstep ossia fare in modo che il motore di fermi anche nelle posizioni intermedie. Questo dipende dalle impostazioni del driver che scegli di usare.
In funzione di questa scelta e del rapporto di riduzione del tuo cinematismo meccanico avrai che per avanzare di 1 mm il tuo motore dovrà eseguire x step.
Una volta che hai calcolato questo valore, il resto è una semplice moltiplicazione.

Grazie per le risposte. Penso che dovrei fare così: all'accensione fare avanzare il motore, mediante Arduino, fino a uno stop iniziale con fine corsa, che corrisponda a "minimo", poi nel senso opposto (fine corsa "massimo"), prendere nota col programma degli step totali occorsi e in base a questo dato e ad altri opportunamente registrati nella eeprom, puntare alle posizioni desiderate.
Purtroppo un sistema simile non tiene conto della posizione attuale, per cui bisogna arrangiarsi. Ecco perché in alcune stampanti vedo il carrello andare a vuoto avanti - indietro una volta, all'accensione.

Non è necessario, fare avanti e indietro.
Basta che acquisisci una posizione nota e quello è il tuo zero di partenza.
Le altre posizioni le calcoli tutte a partire da li, compreso il massimo.
Se vuoi, puoi mettere un finecorsa di minimo e massimo per maggior sicurezza, ma l'azzeramento della posizione fallo sempre e solo su uno dei due.

Grazie. Alle prossime

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