]> git.piffa.net Git - sketchbook_andrea/blobdiff - libraries/common/common.h
Common, cambiato il behaiour di RGB LED:
[sketchbook_andrea] / libraries / common / common.h
index ba07fa4dec7080583f910c2889013dc56da53b06..440abf4f803dcb8d82e35a6fae6e94b1907bc7c0 100644 (file)
@@ -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,10 +48,13 @@ class RGBLed {
     byte redValue ;
     byte greenValue ;
     byte blueValue ;
+    boolean 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 Rand ();
        void Red ();
     void Green ();
     void Blue ();
@@ -64,16 +72,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 +100,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, const byte ledPin = 13);
+
+
+#endif