- Cos'è PWM (Pulse Width Modulation)?
- Ciclo di lavoro del PWM
- Alcune domande che sorgono comunemente su PWM
Inverter, convertitori, circuiti SMPS e regolatori di velocità… Una cosa comune a tutti questi circuiti è che è costituito da molti interruttori elettronici al suo interno. Questi interruttori non sono altro che dispositivi elettronici di potenza come MOSFET, IGBT, TRIAC ecc. Per controllare tali interruttori elettronici di potenza usiamo comunemente qualcosa chiamato segnali PWM (Pulse Width Modulation). Oltre a questo, i segnali PWM vengono utilizzati anche per pilotare i servomotori e anche per altre semplici attività come il controllo della luminosità di un LED.
Nel nostro precedente articolo abbiamo appreso dell'ADC, mentre l'ADC viene utilizzato per leggere i segnali analogici da un dispositivo digitale come un microcontrollore. Un PWM può essere considerato come l'esatto opposto di esso, PWM viene utilizzato per produrre segnali analogici da un dispositivo digitale come un microcontrollore. In questo articolo impareremo cos'è il PWM, i segnali PWM e alcuni parametri ad esso associati, in modo da essere sicuri di usarli nei nostri progetti.
Cos'è PWM (Pulse Width Modulation)?
PWM è l'acronimo di Pulse Width Modulation; entreremo nel motivo di un tale nome più tardi. Ma per ora intendiamo PWM come un tipo di segnale che può essere prodotto da un IC digitale come un microcontrollore o un timer 555. Il segnale così prodotto avrà un treno di impulsi e questi impulsi avranno la forma di un'onda quadra. Cioè, in un dato istante di tempo l'onda sarà alta o sarà bassa. Per facilità di comprensione consideriamo un segnale PWM a 5V, in questo caso il segnale PWM sarà di 5V (alto) o a livello del suolo 0V (basso). La durata in cui il segnale rimane alto è chiamata " tempo di accensione " e la durata in cui il segnale rimane basso è chiamata " tempo di spegnimento ".
Per un segnale PWM dobbiamo guardare a due parametri importanti ad esso associati uno è il ciclo di lavoro PWM e l'altro è la frequenza PWM.
Ciclo di lavoro del PWM
Come detto in precedenza, un segnale PWM rimane attivo per un determinato periodo di tempo e poi rimane spento per il resto del periodo. Ciò che rende questo segnale PWM speciale e più utile è che possiamo impostare per quanto tempo deve rimanere acceso controllando il ciclo di lavoro del segnale PWM.
La percentuale di tempo in cui il segnale PWM rimane ALTO (tempo di attivazione) viene chiamata duty cycle. Se il segnale è sempre ON è nel duty cycle del 100% e se è sempre spento è nel duty cycle dello 0%. Di seguito sono riportate le formule per calcolare il ciclo di lavoro.
Ciclo di lavoro = Tempo di accensione / (Tempo di accensione + Tempo di spegnimento)
L'immagine seguente rappresenta un segnale PWM con duty cycle del 50%. Come puoi vedere, considerando un intero periodo di tempo (tempo di accensione + tempo di spegnimento) il segnale PWM rimane attivo solo per il 50% del periodo di tempo.
Frequenza = 1 / Periodo di tempo Periodo di tempo = Tempo di accensione + Tempo di spegnimento
Normalmente i segnali PWM generati dal microcontrollore saranno intorno ai 500 Hz, frequenze così alte verranno utilizzate in dispositivi di commutazione ad alta velocità come inverter o convertitori. Ma non tutte le applicazioni richiedono alta frequenza. Ad esempio per controllare un servomotore dobbiamo produrre segnali PWM con frequenza di 50Hz, quindi anche la frequenza di un segnale PWM è controllabile da programma per tutti i microcontrollori.
Alcune domande che sorgono comunemente su PWM
Qual è la differenza tra il ciclo di lavoro e la frequenza di un segnale PWM?
Il ciclo di lavoro e la frequenza di un segnale PWM sono spesso confusi. Come sappiamo un segnale PWM è un'onda quadra con un tempo di accensione e spegnimento particolare. La somma di questo tempo di attivazione e di disattivazione viene chiamato un periodo di tempo. L'inverso di un periodo di tempo è chiamato frequenza. Mentre la quantità di tempo in cui il segnale PWM dovrebbe rimanere attivo in un periodo di tempo è deciso dal ciclo di lavoro del PWM.
Per semplificare, la velocità con cui il segnale PWM deve accendersi e spegnersi è deciso dalla frequenza del segnale PWM e in quella velocità per quanto tempo il segnale PWM deve rimanere acceso è deciso dal duty cycle del segnale PWM.
Come convertire i segnali PWM in tensione analogica?
Per applicazioni semplici come il controllo della velocità di un motore CC o la regolazione della luminosità di un LED, dobbiamo convertire i segnali PWM in tensione analogica. Questo può essere fatto facilmente utilizzando un filtro RC ed è comunemente usato dove è richiesta una funzione DAC. Il circuito per lo stesso è mostrato di seguito
Nel grafico mostrato sopra, quello di colore giallo è il segnale PWM e quello di colore blu è la tensione analogica di uscita. Il valore del resistore R1 e del condensatore C1 può essere calcolato in base alla frequenza del segnale PWM ma normalmente viene utilizzato un resistore 5.7K o 10K e un condensatore 0.1u o 1u.
Come calcolare la tensione di uscita del segnale PWM?
La tensione di uscita di un segnale PWM dopo averlo convertito in analogico sarà la percentuale del ciclo di lavoro. Ad esempio, se la tensione di esercizio è 5 V, anche il segnale PWM avrà 5 V quando è alto. In tal caso per un ciclo di lavoro del 100% la tensione di uscita sarà di 5 V per un ciclo di lavoro del 50% sarà di 2,5 V.
Tensione di uscita = Ciclo di lavoro (%) * 5
Esempi:
Abbiamo già utilizzato PWM con vari microcontrollori in molti dei nostri progetti:
- Modulazione di larghezza di impulso con ATmega32
- PWM con Arduino Uno
- Generazione di PWM utilizzando il microcontrollore PIC
- Tutorial PWM Raspberry Pi
- Controllo servomotore con Raspberry Pi
- Modulazione di larghezza di impulso (PWM) utilizzando MSP430G2
- Modulazione di larghezza di impulso (PWM) in STM32F103C8
- Controllo servomotore con Raspberry Pi
- Controllo motore CC con Raspberry Pi
- Dimmer LED da 1 watt
- Dimmer LED basato su Arduino con PWM
Controlla ulteriormente tutti i progetti relativi al PWM qui.