Motore stepper e controllo giri

Ciao a tutti, vi spiego in maniera piu' semplice e completa il progetto che ho realizzato e le modifiche che vorrei apportare relative alle problematiche riscontrate, e qui chiedo il vostro aiuto.

Il sistema è composta da un motore stepper NEMA 23 e un driver M542T, un arduino MEGA e due sensori magnetici.

Il motore stepper fa ruotare una vite senza fine su cui e vincolata una porta che si apre e chiude fino al raggiungimento dei relativi fine corsa magnetici di apertura e chiusura. Il mio progetto, tramite comando remoto apre e chiude la porta. Fin qui tutto bene, ma ho riscontrato che alle volte per errore di parallasse dei sensori magnetici "supero il fine corsa". sto studiando sempre un alternativa ai sensori provando con quelli meccanici, tipo pulsanti a levetta, ma noto spurie ed in quanto il peso della porta e quindi la coppia del motore siano notevoli, rischio di rompere il tutto. per ora ho agito montando un fine corsa meccanico posto dopo i relativi fine corsa magnetici cosi che in caso di superamento del sensore, alla pressione del fine corsa meccanico, fermo il ciclo.

Tutto questo mi suona macchinoso anche se obbiettivamente penso sia la soluzione piu' semplice ed immediata.
Ho inoltre pensato come alternativa di utilizzare un encoder, vincolato alla carcassa, con l alberino libero di ruotare insieme alla vite senza fine mossa dal motore. Se così facendo potrei campionare i numero di giri che servono per portare la mia porta alla soglia di apertura e chiusura e fermarla.
Il problema è che non so che questa idea può essere fruttifera così da migliorare il mio progetto. Inoltre non conosco molte bene gli stepper e gli encoder, per questo ho optato in primis per dei finecorsa meccanici e magnetici.

Vi ringrazio anticipatamente per i consigli o tutto ciò che ne deriverà da questa discussione, un saluto a tutti.

  1. sensori devono essere montati in modo da funzionare in modo efficace e esicuri.
  2. I finecorsa devono essere montati in modo che il moto non li distrugga.
  3. Non serve encoder; hai giá il movimento vincolato dai passi di pilotaggio del motore passo passo.
  4. puoi mettere un finecorsa che rileva il punto piú basso del dado della vite senza fine.

Ciao Uwe