]> git.piffa.net Git - sketchbook_andrea/blobdiff - libraries/common/common.h
PWM Pulse
[sketchbook_andrea] / libraries / common / common.h
index c5ad5d567c7301082c6b374721bcea1313c49dc0..b74ab4528bc3d4b0a5bffc759170c464fe3a55f4 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 ();
@@ -71,9 +79,13 @@ class Lampeggiatore {
 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
 };
 
 
@@ -89,21 +101,68 @@ class Pwm {
     int ledPin ;           // il numero del LED pin
     int speed ;            // velocita' del ciclo in ms
     unsigned long previousMillis ;  //precedente cambio di stato
-    byte increment ;        // aumenta brighteness nel loop UD
+    byte increment ;       // aumenta brighteness nel loop UD
+    int step;              // Pulse: stato del loop PWM
+    int interval ;         // Pulse: Intervallo tra step 
 
     // 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 Pulse(int interval, int pausa = 255);
+    void RandomPulse(int min = 1, int max = 10, int pausa = 255);
+    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