]> git.piffa.net Git - sketchbook_andrea/blobdiff - libraries/common/common.h
rtos
[sketchbook_andrea] / libraries / common / common.h
index 71cb19a84efa0670564ff0673d9d90662e42ebba..dee00b6181872550eb89f65537f9d495db40add6 100644 (file)
@@ -12,7 +12,7 @@
 
 class RGBLed {
   // Classe rappresentativa di un LED RGB
-  
+  protected:    // Vedi esempio Ereditarieta'
     byte redPin ;
     byte greenPin ;
     byte bluePin ;
@@ -22,6 +22,7 @@ class RGBLed {
 
   public:
     RGBLed (byte pinR, byte pinG, byte pinB) ;
+       void SetColor (byte r, byte g, byte b) ;
        void Red ();
     void Green ();
     void Blue ();
@@ -30,9 +31,53 @@ class RGBLed {
     void White ();
     void Yellow ();
     void Off ();
-       void SetColor (byte r, byte g, byte b) ;
 };
 
-void brilla(byte pin, int velocita = 500) ;
 
+
+class Lampeggiatore {
+    // Lampeggia un LED utilizzando millis()
+    // Variabili
+    int ledPin ;           // il numero del LED pin
+    long interval ;        // milliseconds di intervallo nel lampeggiare
+    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
+};
+
+
+
+////////////////////////////
+class Pwm {
+    /*
+       PWM per un LED: aumentare progressivamente la luminosita'.
+       Utilizza la funzione millis() invece che un delay()
+       in modo da non blocare il processore.
+    */
+    // 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
+
+    // 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);
+    byte brightness  ;      // luminostia' iniziale
+};
+
+//////////////////////
+// Funzioni
+
+void brilla(byte pin, int velocita = 200) ;
 #endif