]> git.piffa.net Git - sketchbook_andrea/blob - multitasking/millis/pwm_millis/pwm_millis.ino
Blink senza variabili, inizio corso
[sketchbook_andrea] / multitasking / millis / pwm_millis / pwm_millis.ino
1 /*
2    Fade
3
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.
7    
8  */
9
10
11 // the setup routine runs once when you press reset:
12 void setup()  {
13   pinMode(9, OUTPUT); // Il PIN nove va dichiarato come un OUTPUT
14 }
15
16 void loop()  {
17
18 pwmUp(9, 3000);
19
20 }
21
22 // Funzioni:
23
24 void pwmUp(byte led, int speed) {
25   // Aumenta progressivamente la luminosita' usanndo millis()
26   // quindi senza bloccare il processore
27
28   static byte brightness = 0;  // Valore iniziale per il PWM del LED
29   static long previousMillis = 0;
30   
31   analogWrite(led, brightness);  // La funziona analogWrite utilizza il PWM
32   // a 8 bit integrato nel MCU: simula un serie di valori intermedi
33   // nell'intervallo discreto con minimo 0 (spento) e  massimo 255 (acceso).
34
35   if ((millis() - previousMillis) > speed / 256) {
36     brightness = brightness + 1; // Incrementiamo la luminosita'
37     previousMillis = millis();
38   };
39 }
40