In realtà i programmi non sono così diversi tra loro.
In un caso si utilizza il valore analogico per calcolare il ritardo, in microsecondi, tra un passo e l'altro.
Nel secondo caso si utilizza il valore analogico per calcolare la velocità lineare e convertirla nel ritardo, in millisecondi.
Peccato che poi non funziona al di sopra di una certa velcoità
Forse, è più corretto utilizzare i microsecondi, perché, con i millisecondi, hai, al massimo
500 passi/s = 2,5 giri/s = 150 rpm = 150*5= 750 mm/min, ipotizzando vite passo 5 e passi interi, figurati se si mettono micropassi assurdi, tipo 3200...
Se andassi oltre, avresti un valore minore di 1 che verrebbe approssimato a 0 in delay. Di fatto non hai pausa e non vedrai mai l'impulso del passo.
Di contro, anche se si fa il calcolo in microsecondi, il calcolo sarà ancor più sbagliato perché non tiene conto dei ritardi introdotti dal resto del codice, che non sono trascurabili.
In questo caso, la funzione map è
sostanzialmente inutile. Introduce un certo ritardo e chissenefrega se alla fine il fondoscala è di 1024mm/min invece che 1000mm/min.
In questo caso si sarebbe potuto evitare tranquillamente.
Anche i calcoli in virgola mobile sono abbastanza pesanti e, quando intervengono, ritardano non poco il codice.
Non pensare che, se il potenziometro è fermo, il valore sarà lo stesso. Molto probabilmente oscillerà almeno tra due cifre consecutive, di fatto facendo eseguire il codice di calcolo anche quando non si vorrebbe.
Per evitare questo si può agire innanzitutto elettricamente con un piccolo condensatore, ma soprattutto, rinunciando a parte della risoluzione (ad es dividendo per 4 il valore letto: temp >>= 2)
Inoltre, utilizzare delay() non è una buona pratica di programmazione, perché blocca il codice e previene , ad esempio, l'utilizzo di altri pulsanti per fare altre azioni in maniera asincrona. Questo è uno dei motivi per cui avevo consigliato di utilizzare una libreria tipo AccelStepper che non è bloccante.
P.S. confermo la necessità di partire da un disegnino con i collegamenti.