Per variare la velocità di un motore passo passo devi variare la frequenza degli impulsi. Tipicamente si hanno due possibili casi.
Il primo è quello per cui realizzi una funzione che, sfruttando l'interrupt del timer, va come ti avevo illustrato io. L'altro metodo è quello di far generare al microcontrollore l'onda quadra sfuttando il modulo CCP configurato in modalità PWM. È poi cura del programmatore riuscire a variare la frequenza del PWM lasciano il duty cycle costante al 50%.
Il secondo metodo non lo vedo adeguato per le tue aspettative in quanto il PWM viene configurato per un range di frequenze ragionevolmente piccolo e viene concesso buon margine per la variazione del duty-cycle. Personalmente preferisco il primo metodo per il quale ti rinnovo le domande: ti è chiaro come laorano i TIMER del PIC? Sai come funziona il meccanismo di interrupt? Sapresti implementare un piccolo esempio in grado di generare un'onda quadra a frequenza fissa (per iniziare, si intende), sfruttando un timer e gli interrupt?
Infine: non so quale compilatore vuoi usare (MikroBASIC?, Ne avevamo già parlato? Io non ricordo

). Può darsi che quello che hai scelto disponga di una funzione di libreria che genera un'onda quadra a frequenza variabile.
morocarlo ha scritto:Mi confermi che la frequenza va fra i 20k e i 30k?
Beh, questo dovresti "confermarlo tu". È un dato di progetto, una specifica. Dipende dal motore che vuoi utilizzare; dalla curva di coppia e dal metodo di pilotaggio (passo intero, mezzo passo, un quarto di passo...) la curva coppia/velocità (la velocità è direttamente proporzionale alla frequenza di pilotaggio) varia sensibilmente da un caso all'altro.
Aspetto risposte alle mie domande.
Ciao.
Paolo.