L'ultimo esempio tocca l'ultima caratteristica base dell'Arduino: quella di poter fornire una tensione analogica, che varia da 0V a 5V, in 256 passi
In realtà Arduino non produce una tensione costante sui suoi piedini, ma una forma d'onda il cui valor medio è la tensione richiesta, secondo al tecnica Pulse Width Modulation o PWM
Per ottenere una tensione continua occorrerebbe un filtro che elimini la componente alternata del segnale, restituendone il valor medio.
Nel nostro caso, dato che regoleremo la luce dei led del display, questo filtro non serve perché è il nostro stesso occhio che non rileva la componente alternata
Non tutte le uscite digitali dell'Arduino possono produrre il segnale PWM, ma alcuni segmenti (a, b, c, d ed f) possono essere regolati
Scriveremo allora una semplice funzione luce(<livello>) che regolerà la luminosità dei segmenti regolabili su 16 diversi livelli
All'interno di questa funzione utilizzeremo la funzione analogWrite (<segmento>,i); dove i è il livello di luminosità, tra 0 e 255 e <segmento> il segmento di cui regolare la luminosità
Dato che non tutti i segmenti sono regolabili, questa volta li regoleremo chiamando la funzione singolarmente per ogni segmento interessato
Nella funzione loop() modificheremo il codice dei tasti dell'esempio precedente per aumentare, ridurre o riportare al 50% la luminosità