8 Link: http://git.andreamanni.com/
14 #include <avr/pgmspace.h>
20 const uint8_t BCORRECT[256] PROGMEM = { // Tabella per correzione luminosita' LED a 8bit
21 0,0,0,1,1,1,2,1,1,2,1,2,2,2,3,2,
22 2,2,3,2,2,3,2,3,3,3,4,3,3,3,4,4,
23 4,5,4,5,4,5,5,6,5,5,6,5,6,6,7,6,
24 7,7,8,7,8,8,9,8,9,10,9,10,10,11,10,11,
25 11,12,11,12,13,12,13,13,14,14,15,15,15,16,16,17,
26 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,
27 25,25,26,26,27,28,28,29,29,30,31,31,32,32,33,34,
28 34,35,36,37,37,38,39,39,40,41,42,43,43,44,45,46,
29 47,47,48,49,50,51,52,53,54,54,55,56,57,58,59,60,
30 61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77,
31 79,80,81,82,83,85,86,87,88,90,91,92,94,95,96,98,
32 99,100,102,103,105,106,108,109,110,112,113,115,116,118,120,121,
33 123,124,126,128,129,131,132,134,136,138,139,141,143,145,146,148,
34 150,152,154,155,157,159,161,163,165,167,169,171,173,175,177,179,
35 181,183,185,187,189,191,193,196,198,200,202,204,207,209,211,214,
36 216,218,220,223,225,228,230,232,235,237,240,242,245,247,251,255
39 // Inserirne una con 32 valori
43 // Classe rappresentativa di un LED RGB
44 protected: // Vedi esempio Ereditarieta'
54 RGBLed (byte pinR, byte pinG, byte pinB) ;
55 RGBLed (byte pinR, byte pinG, byte pinB, byte com) ;
56 void SetColor (byte r, byte g, byte b) ;
70 // Lampeggia un LED utilizzando millis()
72 int ledPin ; // il numero del LED pin
73 long interval ; // milliseconds di intervallo nel lampeggiare
74 unsigned long previousMillis ; // precedente cambio di stato
75 int ledState ; // stato attuale del LED, pubblico per invertirlo
77 // Constructor: come viene instanziato un oggetto facente parte della classe
79 Lampeggiatore(int pin);
80 void Invert(); // Inverte il lampeggio
81 void Blink(); // Lampeggia ogni 500ms
82 void Blink(long interval, long drift = 0); // Lampeggia inpostando l'intervallo
83 void Blink(long on, long down, long drift); // Imposta il tempo acceso e il tempo spento
84 void High(); // Accende il LED
85 void Low(); // Spegne il LED
86 void Swap(); // Inverte lo stato del LED
87 unsigned long shift ; // anticipo / ritardo
92 ////////////////////////////
95 PWM per un LED: aumentare progressivamente la luminosita'.
96 Utilizza la funzione millis() invece che un delay()
97 in modo da non blocare il processore.
100 int ledPin ; // il numero del LED pin
101 int speed ; // velocita' del ciclo in ms
102 unsigned long previousMillis ; //precedente cambio di stato
103 byte increment ; // aumenta brighteness nel loop UD
105 // Constructor: come viene instanziato un oggetto facente parte della classe
107 Pwm(int pin); // numero di pin, velocita' di ciclo
108 void Up(long speed, long drift = 0);
109 void lUp(long speed, long drift = 0);
110 void Down(long speed, long drift = 0);
111 void lDown(long speed, long drift = 0);
112 void UD(long speed, long drift = 0);
113 void Set(byte brighteness);
114 void lSet(byte brighteness);
115 byte brightness ; // luminostia' iniziale
116 unsigned long shift ; // anticipo / ritardo
121 ////////////////////////////
123 // Lampeggia LED in sequenza utilizzando millis()
124 unsigned long previousMillis ;
132 Sequenza (byte passed[], byte dim) ; // Array contentente i PINS, dimensioni array
133 void Update(long value) ; // Accende in sequenza
134 void Reverse(long value) ; // Invertita
135 void UD(long value) ; // Up & Down
153 //////////////////////
156 void brilla(byte pin, int velocita = 200) ;
160 int calibraTrim(int pin, byte ledPin = 13);