Il PWM o modulazione a larghezza d’impulso, rappresenta i segnali che variano il proprio livello logico nel tempo, passando dal livello logico 0 al livello logico 1, per la durata di un periodo (ciclo di lavoro).
Il rapporto tra il tempo in cui il livello logico si trova a 1 e 0, si chiama Duty Cycle.
Un Duty Cycle al 50% significa che il tempo in cui la tensione si trova a 1, è la metà del tempo in cui il segnale è a Zero.
Il segnale può essere modulato in modo che il rapporto possa variare dallo 0% al 100%.
Con un rapporto allo 0%, l’uscita sarà a zero volt, mentre con il rapporto 100%, l’uscita sarà al livello logico 1; il ciclo successivo inizia quando termina il ciclo precedente.
Alcuni utilizzi.
Il PWM è utile per controllare la potenza erogata come per il Varilight che regola la luminosità di una lampadina, il dimmer che controlla la luminosità di un led o il regolatore di velocità di un trapano.
Altri utilizzi nei servocontrolli a distanza come, il controllo di un servocomando che controlla il posizionamento degli alettoni di un aereo modello, o la chiusura e apertura parziale di elettrovalvole pilotate da remoto utilizzando una frequenza che serve da portante per il segnale modulato in ampiezza di impulso.
Il segnale PWM è utilizzato anche per convertire un segnale digitale in analogico, integrando gli impulsi del Duty Cycle con un filtro Resistenza/Condensatore.
Anche gli amplificatori sonori in classe D, utilizzano la modulazione PWM.
Arduino UNO ha 6 pins utilizzabili come uscite PWM; sono contrassegnati da una piccola onda serigrafata sul circuito stampato, sul lato sinistro della scheda; in ordine dal basso: PD3,PD5,PD6, PB1, PB2 e PB3 .
La libreria PWM(internal), selezionabile dal menu “Outputs”, permette di visualizzzare l’andamento interno del segnale PWM evidenziando i parametri Mark- Space , la frequenza e il periodo.
Parametri per PWM(internal)
ChangePeriod
Imposta il Periodo e il prescaler della uscita PWM
Parametri
Disable: disabilita l’uscita PWM ripristinando la disponibilità di utilizzo del pin come I/O
Enable : Abilita l’uscita PWM disabilitando la possibilità di utilizzo del pin come I/O.
SetDutyCycle:Imposta il Duty Cycle del segnale PWM; esempio un Duty Cycle di 128 equivale ad un segnale 50% on e 50% off
Parameters
SetDutyCycle10Bit: Imposta il rapporto Mark/Space con valori compresi tra 0 e 1023
Se il periodo è = 255 , il duty Cycle di 512 sarà uguale al 50%
Parameters
PWM(internal) Properties - visualizzazione DIGITALE
Tutte le uscite PWM che utilizzano lo stesso Timer condividono anche il Periodo e il Prescaler.
la rappresentazione dell’uscita PWM nella simulazione, può essere digitale o Analogica
PWM(internal) Properties - visualizzazione ANALOGICA
tensione di uscita PWM, visualizzata sull’oscilloscopio virtuale di Flowcode
visualizzazione dell barra analogica nella DashBoard.
l’uscita PWM analogica può essere utilizzata per controllare la luminosità di un led; lo schema indica come collegare l’uscita a un transistor per avere una corrente di pilotaggio maggiore.
L’uscita PWM analogica può essere collegata anche a un VU meter analogico.
Pilotaggio di carichi ad alto assorbimento.
L’uscita digitale che varia tra lo zero logico e, l’uno logico, permette di dosare la potenza necessaria per accendere una lampada o un motore; quando il segnale è zero 0, la potenza erogata è nulla, quando è 1, la potenza erogata è massima.
Quanto più tempo il segnale rimarrà al livello logico 1, maggiore sarà la potenza che arriverà al carico.
La frequenza di controllo del ciclo dipende dall’isteresi del carico.
Per un motore in corrente alternata, una lampada a 220 V, una resistenza per riscaldare un fluido, la frequenza di rete di 50 Hz, determina la durata del ciclo.
Per il controllo dei motori Brushless, la frequenza del ciclo determina la velocità di rotazione.
Per carichi con isteresi molto bassa, come una barra a diodi led, la frequenza del ciclo deve essere tale da evitare il fastidio dello sfarfallio dovuto al battimento con la frequenza di rete, in ogni caso superiore a 60 Hz.
E’ possibile pilotare un carico a 220 volt AC, inserendo un foto accoppiatore, con integrato un circuito di “Zero crossing” ,tra l’uscita di Arduino e un triac.
Lo “Zero Crossing Switch” (ZC), sincronizza il segnale di controllo con la frequenza di rete AC 220 v, in modo da evitare la generazione di impulsi che generano disturbi sulla rete stessa.
Interrupts
Riccardo Monti