X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=libraries%2Fcommon%2Fcommon.h;h=7f87600b466749d4a3476037c691ce2df212fdeb;hb=2d20ec97a60179f5dc3073c77cead5706b711c56;hp=ba07fa4dec7080583f910c2889013dc56da53b06;hpb=f2de80ea596c958fb5d919883befabfad25dcae2;p=sketchbook_andrea diff --git a/libraries/common/common.h b/libraries/common/common.h index ba07fa4..7f87600 100644 --- a/libraries/common/common.h +++ b/libraries/common/common.h @@ -3,6 +3,11 @@ Oggetti comuni +Autore: Andrea Manni + +Link: http://git.andreamanni.com/ +Licenza: GPLv3 + */ #include "Arduino.h" @@ -12,7 +17,7 @@ #define common_h // Variabili -const uint8_t BCORRECT[256] PROGMEM = { // Tabella per correzione luminosita' PWM +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, @@ -43,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 (); @@ -64,16 +71,20 @@ class Lampeggiatore { // Variabili int ledPin ; // il numero del LED pin 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 Invert(); // Inverte il lampeggio - 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 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 }; @@ -88,22 +99,65 @@ class Pwm { // Variabili int ledPin ; // il numero del LED pin int speed ; // velocita' del ciclo in ms - 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) ; -#endif byte lum(byte val); + +int calibraTrim(int pin, byte ledPin = 13); + + +#endif