]> git.piffa.net Git - sketchbook_andrea/blobdiff - libraries/common/common.cpp
common utilities
[sketchbook_andrea] / libraries / common / common.cpp
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