4 PWM per un LED: aumentare progressivamente la luminosita'.
5 Utilizza la funzione millis() invece che un delay()
6 in modo da non blocare il processore.
8 La durata del ciclo e' pero' molto approssimativa in multipli di 256ms
9 quindi con errore di +-128ms, inoltre si possono accumulare ulteriori
10 ritardi se la funzione non viene eseguita regolarmente ogni ms.
15 // the setup routine runs once when you press reset:
17 pinMode(9, OUTPUT); // Il PIN nove va dichiarato come un OUTPUT
28 void pwmUp(byte led, int speed) {
29 // Aumenta progressivamente la luminosita' usanndo millis()
30 // quindi senza bloccare il processore
32 static byte brightness = 0; // Valore iniziale per il PWM del LED
33 static long previousMillis = 0;
35 analogWrite(led, brightness); // La funziona analogWrite utilizza il PWM
36 // a 8 bit integrato nel MCU: simula un serie di valori intermedi
37 // nell'intervallo discreto con minimo 0 (spento) e massimo 255 (acceso).
39 if ((millis() - previousMillis) > speed / 256) {
40 brightness++ ; // Incrementiamo la luminosita'
41 previousMillis = millis();