Ora il nostro robot può andare avanti, indietro, a destra e a sinistra con pochi semplici comandi, ma senza avere una proporzione.
Questo indica che non possiamo variare la velocirà dei motorini e nemmeno i gradi dello sterzo.
Come si può modificare la velocità di un motorino in corrente continua?
La risposta è, usando la modulazione PWM.
La modulazione PWM (Pulse Width Modulation) ovvero la modulazione di larghezza di impulsi funziona nel seguente modo:
Immaginiamo di avere una tensione continua, un interruttore ed un uscita.
Ora chiudiamo per un secondo l'interruttore per poi riaprirlo, sempre per un secondo, avremo una forma d'onda simile alla figura sottostante.
In questo modo abbiamo un duty-cycle del 50% ovvero il tempo in cui abbiamo una tensione alta è uguale al tempo in cui abbiamo una tensione bassa.
In questo modo non avremo la tensione completa ma il 50% di essa, facciamo un esempio:
Se alimentiamo il circuito con 12 Volt ed applichiamo una forma d'onda quadra, con un duty-cycle del 50% avremo 6 volt, ovvero la metà.
Applicando una tensione di 6 Volt con un duty-cycle del 50% avremo solo 3 Volt e così via discorrendo.
Ipotizziamo ora di cambiare il tempo in cui l'interruttore rimane chiuso sino a portarlo a circa 80% del tempo, avremmo una forma d'onda simile a quella sottostante.
In questo modo la tensione presente non sarà più del 50% ma dell'80% quindi, alimentando il circuito con 12 Volt ci ritroveremo circa 9,6 Volt.
Stesso discorso per una tensione di 6 Volt, avremo 4,8 Volt.
Immaginiamo ora di fare l'opposto e quindi diminuire il tempo in cui l'interruttore rimane chiuso e portarlo a dei tempi di circa il 20%, avremo una forma d'onda simile alla seguente.
In questo caso la tensione scenderà del 20% avendo 2,4 Volt nel caso dei 12 Volt e 1,2 Volt nel caso dei 6 Volt.
Da quì si può comprendere come sia possibile variare una tensione variando semplicemente il duty-cycle e quindi variare la velocità di un motorino in corrente continua.
Da notare una cosa, la frequenza non è cambiata, cambia il tempo in cui la tensione si trova positiva o negativa, questo vuol dire che se aumentiamo il tempo in cui il valore positivo rimane alto dobbiamo, per forza, diminuire il tempo in cui il valore rimane negativo.
Stesso discorso per l'opposto, aumentando il tempo in cui la forma d'onda rimane negativa bisogna diminuire il tempo in cui la forma d'onda rimane positiva.
All'interno delle istruzioni di Arduino, è presente una funzione che fa tutto ciò, semplificandoci il lavoro.
Alla funzione va solo passato il parametro che identifica la percentuale in cui la forma d'onda deve rimanere positiva.
Non è un valore che varia da 0 a 100 ma da 0 a 255, come si vedrà nel codice esempio successivo.
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.