X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=libraries%2Fcommon%2Fcommon.h;h=7f87600b466749d4a3476037c691ce2df212fdeb;hb=2d20ec97a60179f5dc3073c77cead5706b711c56;hp=c1cfc39636211e0da00312226b527b84b3db1544;hpb=fa958474bcffcf0cfc45a620e2fb2c611c44d18f;p=sketchbook_andrea diff --git a/libraries/common/common.h b/libraries/common/common.h index c1cfc39..7f87600 100644 --- a/libraries/common/common.h +++ b/libraries/common/common.h @@ -3,12 +3,41 @@ Oggetti comuni +Autore: Andrea Manni + +Link: http://git.andreamanni.com/ +Licenza: GPLv3 + */ #include "Arduino.h" +#include + #ifndef common_h #define common_h +// Variabili +const uint8_t BCORRECT[256] PROGMEM = { // Tabella per correzione luminosita' LED a 8bit + 0,0,0,1,1,1,2,1,1,2,1,2,2,2,3,2, + 2,2,3,2,2,3,2,3,3,3,4,3,3,3,4,4, + 4,5,4,5,4,5,5,6,5,5,6,5,6,6,7,6, + 7,7,8,7,8,8,9,8,9,10,9,10,10,11,10,11, + 11,12,11,12,13,12,13,13,14,14,15,15,15,16,16,17, + 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, + 25,25,26,26,27,28,28,29,29,30,31,31,32,32,33,34, + 34,35,36,37,37,38,39,39,40,41,42,43,43,44,45,46, + 47,47,48,49,50,51,52,53,54,54,55,56,57,58,59,60, + 61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77, + 79,80,81,82,83,85,86,87,88,90,91,92,94,95,96,98, + 99,100,102,103,105,106,108,109,110,112,113,115,116,118,120,121, + 123,124,126,128,129,131,132,134,136,138,139,141,143,145,146,148, + 150,152,154,155,157,159,161,163,165,167,169,171,173,175,177,179, + 181,183,185,187,189,191,193,196,198,200,202,204,207,209,211,214, + 216,218,220,223,225,228,230,232,235,237,240,242,245,247,251,255 +}; + +// Inserirne una con 32 valori + class RGBLed { // Classe rappresentativa di un LED RGB @@ -19,9 +48,11 @@ class RGBLed { byte redValue ; byte greenValue ; byte blueValue ; + byte common ; public: RGBLed (byte pinR, byte pinG, byte pinB) ; + RGBLed (byte pinR, byte pinG, byte pinB, byte com) ; void SetColor (byte r, byte g, byte b) ; void Red (); void Green (); @@ -39,17 +70,21 @@ class Lampeggiatore { // Lampeggia un LED utilizzando millis() // Variabili int ledPin ; // il numero del LED pin - int ledState ; // stato attuale del LED long interval ; // milliseconds di intervallo nel lampeggiare - long previousMillis ; // precedente cambio di stato - + unsigned long previousMillis ; // precedente cambio di stato + int ledState ; // stato attuale del LED, pubblico per invertirlo // Constructor: come viene instanziato un oggetto facente parte della classe public: Lampeggiatore(int pin); - void Blink(); // Lampeggia ogni 500ms - void Blink(long interval); // Lampeggia inpostando l'intervallo - void Blink(long on, long down); // Imposta il tempo acceso e il tempo spento + void Invert(); // Inverte il lampeggio + void Blink(); // Lampeggia ogni 500ms + void Blink(long interval, long drift = 0); // Lampeggia inpostando l'intervallo + void Blink(long on, long down, long drift); // Imposta il tempo acceso e il tempo spento + void High(); // Accende il LED + void Low(); // Spegne il LED + void Swap(); // Inverte lo stato del LED + unsigned long shift ; // anticipo / ritardo }; @@ -64,20 +99,65 @@ class Pwm { // Variabili int ledPin ; // il numero del LED pin int speed ; // velocita' del ciclo in ms - byte brightness ; // luminostia' iniziale - long previousMillis ; //precedente cambio di stato - byte increment ; // aumenta brighteness nel loop UD + unsigned long previousMillis ; //precedente cambio di stato + byte increment ; // aumenta brighteness nel loop UD // Constructor: come viene instanziato un oggetto facente parte della classe public: Pwm(int pin); // numero di pin, velocita' di ciclo - void Up(long speed); - void Down(long speed); - void UD(long speed); + void Up(long speed, long drift = 0); + void lUp(long speed, long drift = 0); + void Down(long speed, long drift = 0); + void lDown(long speed, long drift = 0); + void UD(long speed, long drift = 0); + void Set(byte brighteness); + void lSet(byte brighteness); + byte brightness ; // luminostia' iniziale + unsigned long shift ; // anticipo / ritardo }; + + +//////////////////////////// +class Sequenza { + // Lampeggia LED in sequenza utilizzando millis() + unsigned long previousMillis ; + byte i = 0; + byte *ledPins; + byte size; + int inc = 1; + long interval; + + public: + Sequenza (byte passed[], byte dim) ; // Array contentente i PINS, dimensioni array + void Update(long value) ; // Accende in sequenza + void Reverse(long value) ; // Invertita + void UD(long value) ; // Up & Down +}; + + + + + + + + + + + + + + + + ////////////////////// // Funzioni void brilla(byte pin, int velocita = 200) ; + +byte lum(byte val); + +int calibraTrim(int pin, byte ledPin = 13); + + #endif