Obiettivo: Realizzazione di un LED con dissolvenza (fading).
Componenti elettronici:
- Arduino UNO
- Breadboard
- 1 Led
- 1 Resistenza (100 Ohm)
Teoria: L’utilizzo dell’istruzione digitalWrite non permette di modulare/regolare la luminosità di un LED. Attraverso l’utilizzo di questa istruzione digitale infatti il LED può trovarsi solamente in due stati logici LOW (spento) o HIGH (acceso).
Per raggiungere lo scopo prefissato è pertanto necessario l’utilizzo di una differente funzione denominata: analogWrite. Questa funzione permette infatti di modulare l’intensità luminosa del LED fornendo 256 differenti livelli di luminosità.
L’istruzione analogWrite permette infatti di emulare un finto segnale analogico attraverso l’impiego della tecnica PWM (Pulse Width Modulation). Solamente sei PIN (quelli contrassegnati dal simbolo tilde ~) possono essere utilizzati per fornire un segnale “analogico”.
A titolo di esempio, volendo alimentare un dispositivo con una tensione analogica pari a 3V il valore da utilizzare come parametro della funzione analogWrite può essere così calcolato:
valore = 3/5*255 = 153
dove:
- Il valore analogico che si vuole produrre è pari a 3V
- La tensione massima in uscita ad Arduino è pari a 5V
- Il valore massimo utilizzabile dalla funzione analogWrite è pari a 255
Collegamento Circuitale:
Codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
/* Lezione 5: Fading Led A Fading operation is perfomed on a LED created 5 Feb 2019 by Andrea Primavera */ int pinLed = 3; void setup() { pinMode(pinLed, OUTPUT); } void loop() { for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) { // sets the value (range from 0 to 255): analogWrite(pinLed, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } // fade out from max to min in increments of 5 points: for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) { // sets the value (range from 0 to 255): analogWrite(pinLed, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } } |