Questo esempio spiega l’utilizzo della funzione analogWrite() utilizzata per regolare la luminosità di un LED. La funzione AnalogWrite utilizza la tecnica pulse width modulation (PWM), ovvero accende e spegne il pin molto rapidamente, con un rapporto variabile tra il tempo in cui resta acceso e il tempo in cui sta spento, creando così un effetto simile alla regolazione della luminosità.

Componenti utilizzati

Circuito

Collegate l’anodo (il pin più lungo, il positivo) del LED al pin 9 di Arduino configurato come uscita digitale tramite una resistenza da 220 ohm. Collegate il catodo (il pin più corto, il negativo) direttamente alla massa.

Schema elettrico

Codice

Nella funzione setup() bisogna solamente dichiarare il pin 9 come pin di output e nominarlo con il nome ledPin (ovviamente potreste utilizzare nomi differenti).

La funzione analogWrite() che utilizzerete nel loop principale richiede due parametri: uno specifica su quale pin la funzione andrà ad agire, il secondo indica il valore del PWM da utilizzare.

Per poter regolare la luminosità del LED andremo ad aumentare gradualmente il valore del PWM da 0 (tutto spento) a 255 (tutto acceso), e poi torneremo nuovamente a 0 per completare il ciclo. Nello sketch riportato quì sotto il valore del PWM è settato tramite la variabile brightness. Ad ogni giro del loop questa viene incrementata del valore scritto nella variabile fadeAmount.

Se brightness ha raggiunto uno dei due estremi del suo valore (0 oppure 255), allora fadeAmount viene sostituito con il suo negativo. Il segno di fadeAmount determinerà se la luminosità andrà ad aumentare o a diminuire ad ogni ciclo del loop.

La funzione analogWrite() ha effetto immediato sul PWM, quindi alla fine è stato aggiunto un delay per regolare la velocità con cui varierà la luminosità. Provate a cambiare il valore del delay per vedere gli effetti sulla velocità della regolazione.

arduino fade