Scopriamo cosa c'è dietro l'acronimo PWM, come funziona, a cosa serve e come possiamo usarlo nel lavoro con Arduino.
Necessario
- -Arduino;
- - Diodo ad emissione luminosa;
- - un resistore con una resistenza di 200 Ohm;
- - informatico.
Istruzioni
Passo 1
I pin digitali di Arduino possono dare solo due valori: logico 0 (LOW) e logico 1 (HIGH). Ecco perché sono digitali. Ma Arduino ha conclusioni "speciali", che sono designate PWM. A volte sono indicati con una linea ondulata "~" o cerchiati o in qualche modo distinti dagli altri. PWM sta per "Pulse-width modulation" o Pulse Width Modulation, PWM.
Un segnale modulato a larghezza di impulso è un segnale a impulso di frequenza costante, ma un ciclo di lavoro variabile (il rapporto tra la durata dell'impulso e il suo periodo di ripetizione). A causa del fatto che la maggior parte dei processi fisici in natura ha una certa inerzia, le brusche cadute di tensione da 1 a 0 verranno appianate, assumendo un valore medio. Impostando il duty cycle, è possibile modificare la tensione media all'uscita PWM.
Se il ciclo di lavoro è del 100%, per tutto il tempo sull'uscita digitale dell'Arduino ci sarà una tensione logica di "1" o 5 volt. Se si imposta il ciclo di lavoro al 50%, metà del tempo in uscita sarà logico "1" e metà - logico "0" e la tensione media sarà di 2,5 volt. E così via.
Nel programma, il ciclo di lavoro non è impostato come percentuale, ma come numero da 0 a 255. Ad esempio, il comando "analogWrite (10, 64)" dirà al microcontrollore di inviare un segnale con un ciclo di lavoro di 25 % all'uscita PWM digitale n. 10.
I pin Arduino con funzione di modulazione della larghezza di impulso funzionano a una frequenza di circa 500 Hz. Ciò significa che il periodo di ripetizione dell'impulso è di circa 2 millisecondi, misurato dai tratti verticali verdi nella figura.
Si scopre che possiamo simulare un segnale analogico all'uscita digitale! Interessante, vero?!
Come possiamo usare questo? Ci sono un sacco di applicazioni! Ad esempio, questi sono il controllo della luminosità del LED, il controllo della velocità del motore, il controllo della corrente del transistor, l'estrazione del suono da un emettitore piezoelettrico …
Passo 2
Diamo un'occhiata all'esempio più elementare: il controllo della luminosità di un LED tramite PWM. Mettiamo insieme uno schema classico.
Passaggio 3
Apriamo lo sketch "Fade" dagli esempi: File -> Samples -> 01. Basics -> Fade.
Passaggio 4
Modifichiamolo un po' e carichiamolo nella memoria di Arduino.
Passaggio 5
Accendiamo la corrente. Il LED aumenta gradualmente di luminosità e poi diminuisce gradualmente. Abbiamo simulato un segnale analogico sull'uscita digitale utilizzando la modulazione di larghezza di impulso.