In questo secondo esempio ho provato ed analizzato uno degli sketch forniti ad esempio dall’IDE Arduino: Fade.
Per trovare questo esempio basta andare nel menu File -> Examples -> Basics -> Fade.
Quello che troverai è il seguente file:
/* Fade This example shows how to fade an LED on pin 9 using the analogWrite() function. This example code is in the public domain. */ int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by void setup() { // declare pin 9 to be an output: pinMode(9, OUTPUT); } void loop() { // set the brightness of pin 9: analogWrite(9, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(30); }
Come al solito io analizzo riga per riga il codice per comprendere assieme come sia composto questo codice, iniziamo:
linee 1-9: commento multimilea, indica lo scopo del programma e definisce sempre in ultima riga la possibilità di utilizzare liberamente questo codice.
linea 10: imposta una variabile di tipo intero ( integer ) in cui memorizzerà il valore di luminosità raggiunto del led nel corso del ciclo di loop, la definizione di una variabile di questo tipo (integer) dovrebbe esserti chiaro, utilizza int nome_variabile = valore;
linea 11: imposta una variabile di tipo intero ( integer ) preimpostata a 5 che rappresenta l’incremento di luminosità che il led raggiungerà ad ogli ciclo ( loop )
linee 13-16: definizione della funzione setup() in cui alla linea 14 trovi il commento alla linea successiva la 15, in cui imposta il pin 9 come pin di tipo OUTPUT: pinMode(9, OUTPUT); la linea 16 chiude la funzione setup().
linea 18: definizione della funzione loop() che sarà terminata alla linea 31.
linea 20: utilizzando il comando analogWrite imposta il duty-cycle 0 al piedino 9, il duty-cycle è 0 in quanto brightness non è stato ancora variato dalla sua inizializzazione alla linea 11.
linea 23: incrementa il valore della variabile brightness del valore di fadeAmount ad ogni ciclo la variabile brightness si incrementa di un valore 5 fino a raggiungere il valore 255, come vedrai alla linea 26.
linea 26: esegue un doppio test sulla variabile brightness confrontandola sia con il valore 0 che con il valore massimo che possiamo passare al comando analogWrite: 255; il confronto in Arduino lo puoi effettuare con il comando if e utilizzando l’operatore OR la cui rappresentazione nella sintassi del linguaggio Arduino è il ||; al raggiungimento del valore 0 o del valore 255 esegue quanto alla linea successiva.
linea 27: inverte il segno della variabile fadeAmount questo trucco comporta che ai successivi cicli quando eseguirà i comendi alla linea 23: brightness = brightness + fadeAmount; in raltà esegue una operazione del tipo brightness = brightness + ( -fadeAmount ); decrementando invece di incrementare il valore di luminosità (brightness) al raggiungimento della soglia 0 il valore di fadeAmount viene nuovamente invertito.
linea 30: introduce un tempo di attesa di 30 millisecondi prima di ripetere il ciclo.
Il circuito che ho realizzato è molto semplice, ho collegato il terminale positivo di un led al pin 9 della scheda Arduino, ed il terminale negativo del led alla massa ( GND ) della scheda Arduino interponendo una resistenza da 470 ohm per proteggere il led.
Il risultato che otterrai è il seguente:
Prima di inserire un commento, per favore, leggi il regolamento
76 pings
Skip to comment form