Il motore compie un giro completo in 200 step.
stepalgiro = 360 / 1.8 = 200.
Questo vale in full-step (passo pieno)
In modo mezzo passo (half step), il minimo angolo di rotazione vale 1.8/2 = 0.9.
stepalgiro = 360 / 0.9 = 400
Per compiere 25 giri al minuto servono 400 x 25 = 10000 (diecimila) passi.
Presumo che il motore passo passo è connesso ad un circuito integrato driver.
La velocità di rotazione dipende dalla frequenza del segnale collegato al terminale 'STEP' (o equivalente) del driver. La frequenza vale F = 1/T con T espresso in secondi. Sappiamo che 1 minuto è composta da 60 secondi. 10000 / 60 = 166.666 passi al secondo. Il segnale in questione sarà una onda quadra di frequenza 166.66 Hz, duty cicle del 50% con periodo T = 1/166.66 = 0,006s (6ms), la larghezza dell'impulso sarà 3ms alto e 3ms basso. Per generare questa frequenza con arduino ci sono due strade consigliate:
1) cercare una libreria che gestisce uno dei timer hardware contenuti dentro la MCU impiegata al fine di generare un a frequenza.
2) Nel caso non si riesca a centrare l'obbiettivo con la (1) occorre gestire uno dei timer manipolando direttamente i registri della MCU.
Il Timer 1 a 16 bit permette di generare questa precisa frequenza 166,666666667Hz (e molte altre con ottima risoluzione).
Ciao.