]> git.piffa.net Git - sketchbook_andrea/commitdiff
common utilities
authoreaman <andrea@piffa.net>
Mon, 30 Jan 2017 17:27:34 +0000 (18:27 +0100)
committereaman <andrea@piffa.net>
Mon, 30 Jan 2017 17:27:34 +0000 (18:27 +0100)
libraries/common/common.cpp
libraries/common/common.h
libraries/common/examples/blink/blink.ino
libraries/common/examples/pwm/pwm.ino
libraries/common/examples/rgb/rgb.ino
libraries/common/keywords.txt

index b77c04602ee55539ed315f9198e56ab124aa0b9d..359896976b81b3a0676fc232d54235dbc215bb1b 100644 (file)
@@ -11,7 +11,8 @@
 // RGB LED
 // Common anode / cat
 
-RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
+RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {    
+    // Per un common catodo, valore max / min invertiti
       redPin    = pinR ;
       greenPin  = pinG ;
       bluePin   = pinB ;
@@ -24,7 +25,7 @@ RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
 };
 
 RGBLed::RGBLed(byte pinR, byte pinG, byte pinB, byte com) {
-    // Per un common catode, inverte il valore max / min
+    // Per un common anode, valore max / min normali
       redPin    = pinR ;
       greenPin  = pinG ;
       bluePin   = pinB ;
@@ -148,6 +149,24 @@ void Lampeggiatore::Blink(long up, long down) {
     digitalWrite(ledPin, ledState);
 };
 
+void Lampeggiatore::High() {
+    // Accende il LED
+
+    digitalWrite(ledPin, HIGH);
+}
+
+void Lampeggiatore::Low() {
+    // Spegne  il LED
+
+    digitalWrite(ledPin, LOW);
+}
+
+void Lampeggiatore::Swap() {
+    // Inverte lo stato del LED
+
+    digitalWrite(ledPin, !digitalRead(ledPin)); 
+}
+
 /////////////////////////////////////
 // Pwm
 // Constructor
@@ -164,7 +183,7 @@ Pwm::Pwm(int pin)
 };
 
 void Pwm::Up(long speed) {
-    // Aumenta progressivamente la luminosita' usanndo millis()
+    // Aumenta linearmente la luminosita' usanndo millis()
     // quindi senza bloccare il processore
     // Viene usato un float, in alternativa un coseno
 
@@ -176,8 +195,21 @@ void Pwm::Up(long speed) {
     };
 }
 
+void Pwm::lUp(long speed) {
+    // Aumenta usanndo millis() con correzione luminosita' LED
+    // quindi senza bloccare il processore
+    // Viene usato un float, in alternativa un coseno
+
+    if (millis() != previousMillis)  { // si potrebbe togliere
+            brightness = 255.0 /(float)speed * millis() ;
+            analogWrite(ledPin, lum(brightness));
+
+        previousMillis = millis();
+    };
+}
+
 void Pwm::Down(long speed ) {
-    // Riduce progressivamente la luminosita' usanndo millis()
+    // Riduce linearmente la luminosita' usanndo millis()
     // quindi senza bloccare il processore
 
     if (millis() != previousMillis)  {
@@ -188,12 +220,35 @@ void Pwm::Down(long speed ) {
     };
 }
 
+void Pwm::lDown(long speed ) {
+    // Riduce  usanndo millis() con correzione della luminosita'
+    // quindi senza bloccare il processore
+
+    if (millis() != previousMillis)  {
+            brightness = 255 - 255.0 /(float)speed * millis() ;
+            analogWrite(ledPin, lum(brightness));
+
+        previousMillis = millis();
+    };
+}
+
 void Pwm::UD(long speed ) {
     // Aumenta e riduce in sequenza la luminosita' usanndo millis()
     brightness = 128 + 127 * cos(2 * PI / speed * millis());
     analogWrite(ledPin, brightness);  
 }
 
+void Pwm::Set(byte brightness) {
+    // Imposta il valore del PWM 
+    analogWrite(ledPin, brightness);  
+}
+
+
+void Pwm::lSet(byte brightness) {
+    // Imposta il valore del PWM 
+    analogWrite(ledPin, lum(brightness));  
+}
+
 
 /////////////////////////////////////
 // Sequenza
index 0af9d453d46a0c49f75fc3ca3c06b15d6e756e58..25b84dd6ae9f7320a1290e869f7b4779a9ca4489 100644 (file)
@@ -73,9 +73,12 @@ class Lampeggiatore {
 public:
     Lampeggiatore(int pin);
     void Invert();   // Inverte il lampeggio 
-    void Blink();      // Lampeggia ogni 500ms
+    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 High();    // Accende il LED
+    void Low();     // Spegne il LED
+    void Swap();    // Inverte lo stato del LED
 };
 
 
@@ -91,14 +94,18 @@ 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
 
     // 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 lUp(long speed);
     void Down(long speed);
+    void lDown(long speed);
     void UD(long speed);
+    void Set(byte brighteness);
+    void lSet(byte brighteness);
     byte brightness  ;      // luminostia' iniziale
 };
 
index b3f9b2be86a3393496f0c769b508ba689c8f8cdd..b796020c749dd907148fe39bc612ef9e73a791c5 100644 (file)
@@ -19,7 +19,10 @@ led.Invert() ;  // Opzionale: inverte l'ordine del lampeggio da
 }
 
 void loop() {
-  led.Blink();  // Lampeggia con un default di 1sec (0.5 HI 0.5 LOW) 
-  led.Blink(500);  // Lampeggia ogni 500ms
-  led.Blink(500,200);  // Imposta il tempo acceso e il tempo spento
+  led.Blink();    // Lampeggia con un default di 1sec (0.5 HI 0.5 LOW) 
+//  led.Blink(500);  // Lampeggia ogni 500ms
+//  led.Blink(500,200);  // Imposta il tempo acceso e il tempo spento
+//  led.High();   // Stato su HI
+//  led.Low();    // Stato su LOW
+//  led.Swap();   // Inverte lo Stato
 }
index 2880ddab0f192e62cbb58edf761b84b0480ed072..deeb8ea735e594f7dd677297dec534afafa51e2c 100644 (file)
 Pwm led = 9;
 
 void setup() {
-// I PINs vengono impostati dal constructor al momento 
-// della dichiarazione dell'ogetto.
+  // I PINs vengono impostati dal constructor al momento
+  // della dichiarazione dell'ogetto.
 }
 
 void loop() {
-  led.Up(2000);     // Aumenta la luminosita' in 2 sec
-  led.Down(1000);   // Diminuisce la luminosita' in 1 sec
-  led.UD(4000);     // Aumenta e poi diminuisce la luminostia' in 4 sec.
+  led.Up(2000);     // Aumenta la luminosita' linearmente in 2 sec
+  //led.lUp(2000);     // Aumenta la luminosita' con correzione luminosita' per LED
+  // led.Down(1000);   // Diminuisce la luminosita' in 1 sec
+  // led.lDown(1000);   // Diminuisce la luminosita' con correzione luminosita'
+  // led.UD(4000);     // Aumenta e poi diminuisce la luminostia' in 4 sec (coseno)
+  // led.set(100);   // Imposta il valore del PWM da 0-255
+  // led.lSet(100);   // Imposta il valore del PWM con correzione luminosita 
+  // analogWrite(lum100); // Equivalente a sopra
 }
index ed7a5643a9eece7a43c18354d62bbc8274079380..0dd3863b15b2ff897ad621a270c0406c5e3d2bc4 100644 (file)
@@ -13,10 +13,10 @@ void setup() {
 // Instanziamo un LED
 RGBLed led(11, 10,9); //Istanziamo un oggetto led (common catodo)
 // facente parte della classe RGBLed
-//RGBLed led(10, 9, 11,255); // Inizializzazione Common anodo, valori invertiti
+//RGBLed led(10,9,11,255); // Inizializzazione Common anodo, valori invertiti
 
 void loop() {
-  led.Red();
+  led.White();
 
 }
 
index 3bbb239d66dc0a7cfe33380747b8e617d5b79980..1ef357be3f66b044303e436f483e8c05fa3405da 100644 (file)
@@ -1,4 +1,4 @@
-RGBLed         KEYWORD1
+RGBLed                 KEYWORD1
 Red                    KEYWORD2        
 Green          KEYWORD2        
 Blue           KEYWORD2        
@@ -9,3 +9,22 @@ Yellow         KEYWORD2
 Off            KEYWORD2        
 SetColor       KEYWORD2                
 brilla         KEYWORD2                
+Lampeggiatore  KEYWORD1
+Invert         KEYWORD2                
+Blink          KEYWORD2                
+Blink          KEYWORD2                
+Blink          KEYWORD2                
+High           KEYWORD2                
+Low                    KEYWORD2                
+Swap           KEYWORD2                
+Pwm                            KEYWORD1
+Up                     KEYWORD2                
+lUp                    KEYWORD2                
+Down           KEYWORD2                
+lDown          KEYWORD2                
+UD                     KEYWORD2                
+Set                    KEYWORD2                
+lSet           KEYWORD2                
+lum                    KEYWORD2        
+Sequenza               KEYWORD1
+Update         KEYWORD2