LEZIONI E FORMAZIONE DAI DOCENTI PER I DOCENTI

Scopri WeTurtle, la community di educatori dove trovare e condividere risorse innovative

home - tutorial - TUTORIAL: COME REALIZZARE L'EFFETTO FADING CON UN LED E ARDUINO

TUTORIAL: COME REALIZZARE L'EFFETTO FADING CON UN LED E ARDUINO

In questo tutorial vedremo come utilizzare una particolare tipologia di pin digitali, i pin PWM.  Queste particolari porte ci verranno in aiuto per accendere e spegnere un led in maniera graduale, applicando un vero e proprio effetto di fading.

La funzione fade sarà possibile anche...

  by Weturtle Team
Arduino

Tempo di lettura/visione: 3 min

lezione free corso Faccio, imparo e mi diverto con i circuiti di Tinkercad - ID SOFIA: 49553

Abbiamo un regalo per te!

Ti interessa l'argomento Elettronica?


Fai il login e guarda GRATUITAMENTE la prima lezione del corso Faccio, imparo e mi diverto con i circuiti di Tinkercad - ID SOFIA: 49553

Introduzione

In questo tutorial vedremo come utilizzare una particolare tipologia di pin digitali, i pin PWM.  Queste particolari porte ci verranno in aiuto per accendere e spegnere un led in maniera graduale, applicando un vero e proprio effetto di fading (in italiano "dissolvenza").

La funzione fade sarà possibile anche grazie ai nuovi comandi che andremo a spiegare, in particolare grazie al ciclo “for” (cioè l'esecuzione ciclica di istruzioni).

Stai muovendo i primi passi nel fantastico mondo di Arduino? Ti consigliamo anche questi tutorial:

Strumenti

Circuito

Il circuito va impostato nella stessa identica maniera del tutorial ACCENDERE E SPEGNERE UN LED TRAMITE PULSANTE CON ARDUINO, a differenza del pin che dovrà essere collegato ad un'uscita in PWM, che permette la comunicazione di un pin digitale con uno analogico. 

Ad esempio se volessimo variare l’intensità di un led con un potenziometro collegato ad un pin analogico, dobbiamo andare a collegare il led ad un pin in PWM che sono: pin 3, pin 5, pin 6, pin 10, pin 11 nel caso di Arduino Uno, e in ogni caso riconoscibili dal simbolo “~” (si legge tilde) accanto al numero della porta.

Pin PWM

Come spiegato in questo articolo, la modulazione di larghezza di impulso (o PWM, acronimo del corrispettivo inglese Pulse-Width Modulation), è un tipo di modulazione digitale che permette di ottenere una tensione media variabile dipendente dal rapporto tra la durata dell'impulso positivo e di quello negativo (duty-cycle).
Un interessante approfondimento sulla PWM si trova anche nel sito di Arduino, a questo link.

Duty cycle

Il duty cycle è una caratteristica fondamentale dellaPWM: è la percentuale del tempo che il segnale rimane ad un valore alto in un periodo.
Nonostante questo segnale generi un’onda quadra con un valore alto (5 volt) e uno basso (0 volt), esso può essere impiegato per simulare un segnale analogico in uscita.

Nell'immagine qui sotto vediamo le differenti onde quadre che si ottengono al variare del duty cicle (qui il link all'immagine originale, Attribuzione - Condividi allo stesso modo 3.0 Unported - CC BY-SA 3.0)

Variabile valoreFade

Una variabile è un modo per nominare e memorizzare un valore numerico per un successivo utilizzo da parte del programma. La possiamo immaginare come una scatola all'interno della quale andiamo a "riporre" degli oggetti che vogliamo riutilizzare in un secondo momento. 

Come suggerisce il loro nome, le variabili sono numeri che possono essere cambiati continuamente rispetto alle costanti il cui valore non cambia mai. Una variabile deve essere dichiarata ed eventualmente in un secondo momento si assegna il valore che si vuole conservare.

Nel nostro caso la variabile può assumere dei valori tra 0 e 255.

Quando verrà dichiarata prima del void setup gli si dovrà dare un valore uguale a 0. Quello 0 corrisponde al valore iniziale che dovrà assumere la variabile.

Ciclo For

L’istruzione for usa una variabile detta contatore che cambia valore ogni volta che viene ripetuto il gruppo di istruzioni e viene usata per stabilire se continuare il ciclo o meno. Nell’istruzione for troviamo tre elementi separati da un punto e virgola:
  • l’init del contatore (Da che valore è inizializzata la variabile) --> valoreFade = 0
  • la condizione che deve essere vera per continuare il ciclo(se il valore è minore di 255) --> valoreFade <255
  • l’incremento del contatore (Il valore si incrementerà) --> valoreFade++ (questa sintassi equivale a scrivere valoreFade = valoreFade + 1)
Ecco l'istruzione completa che verrà utilizzata per accendere gradualmente il led (con un valore di accensione che varierà da 0 a 255):

for (valoreFade = 0 ; valoreFade <255; valoreFade++)


Questo invece è il ciclo che verrà utilizzato per spegnere gradualmente il led (con un contatore che decrementerà da 255 a 0):

for (valoreFade = 255 ; valoreFade > 0; valoreFade--)

Questo secondo ciclo verrà eseguito al termine del primo, ossia dopo l'accensione graduale del led andremo a realizzare uno spegnimento graduale.

AnalogWrite

L’analogWrite è una funzione simile al digitalWrite (presentata nel tutorial ACCENDERE E SPEGNERE UN LED TRAMITE PULSANTE CON ARDUINO): questa funzione è però contraddistinta dalla possibilità di "scrivere" più valori. Mentre il digitalWrite permette di scrivere solo due valori (0 - 1) sul pin di output, l’analogWrite permette di scrivere valori compresi tra 0 a 255.

Per un approfondimento sulle differenze tra analogico e digitale, consigliamo questo video.

Funzione del programma

Il programma permette l’accensione graduale di un  led, attraverso l'ausilio di una variabile valoreFade il cui valore può variare da un minimo di 0 ad un massimo di 255, ed un ciclo for che permetto incremento e decremento della variabile preimpostata. Questa variabile comunicherà con il pin 11 del led (tramite funzione analogWrite), che prenderà il valore corrispondente così da effettuare il Fading. E' stato inserito un delay di 10 millisecondi per rendere visibile l'effetto all'occhio umano.

Di seguito si trova il programma completo e funzionante.



Questa invece è una screenshot realizzata all'interno dell'IDE di Arduino.

Riferimenti e links

Se vuoi maggiori informazioni o una consulenza o se vuoi far parte della famiglia We Turtle scrivi all'indirizzo email: info@weturtle.org

Per restare sempre aggiornato iscriviti alla piattaforma, segui WeTurtle e TALENT su Facebook e iscriviti al nostro canale Youtube!
Faccio, imparo e mi diverto con i circuiti di Tinkercad...


Vuoi approfondire gli argomenti trattati in questo tutorial?


Ti consigliamo il corso Faccio, imparo e mi diverto con i circuiti di Tinkercad - ID SOFIA: 49553

SCOPRI IL CORSO




Vuoi fare una domanda all'autore?

oppure


GLI ALTRI UTENTI HANNO CHIESTO