]> git.piffa.net Git - sketchbook_andrea/commitdiff
Common
authorAndrea Manni <andrea@piffa.net>
Thu, 9 Feb 2017 19:14:05 +0000 (20:14 +0100)
committerAndrea Manni <andrea@piffa.net>
Thu, 9 Feb 2017 19:14:05 +0000 (20:14 +0100)
libraries/common/common.cpp
libraries/common/common.h
libraries/common/examples/rgb/rgb.ino

index 4a2c914731d01742eca4bae12c33f6f0c784da3b..7f056275fd825bbeb550cba2a7953f41cce962a4 100644 (file)
@@ -10,6 +10,7 @@
 #include "Arduino.h"
 #include "common.h"
 
+#define DEBUG_not
 
 //////////////////////
 // RGB LED
@@ -48,12 +49,14 @@ void RGBLed::SetColor (byte r, byte g, byte b) {
     analogWrite(bluePin,  common - b);
 
 // Debug
-//   Serial.print(common - r);
-//   Serial.print("-");
-//   Serial.print(common - g);
-//   Serial.print("-");
-//   Serial.print(common - b);
-//   while(1);
+#ifdef DEBUG
+   Serial.print(common - r);
+   Serial.print("-");
+   Serial.print(common - g);
+   Serial.print("-");
+   Serial.print(common - b);
+   while(1);
+#endif
 
 };
 
@@ -372,7 +375,7 @@ byte lum(byte val) {
 };
 
 
-int calibraTrim(int pin, byte ledPin) {
+int calibraTrim(int pin, const byte ledPin) {
     /* START Calibrazione TRIM canale:
        Lettura di 10 smaple
        calcolo del valore medio esclusi gli 0
@@ -382,31 +385,40 @@ int calibraTrim(int pin, byte ledPin) {
        questa funzione nel setup serve per trovare il punto medio
        all'avvio dello sketch.
      */
+    pinMode(ledPin,OUTPUT);
     byte a             = 0;
-    int ail    = 0;
-    int ailIn  = 0;
+    int servoValue     = 0;
+    int middle = 0; 
+#ifdef DEBUG
     Serial.println(">> Calibrazione: ");
+#endif 
     while (a < 10) {
         if (millis() > 10000) {
+#ifdef DEBUG
             Serial.println(">> Calibrazione annullata a causa di assenza di seganle. \nAssicurarsi di accendere radio e ricevente \ne ripetere la procedura.");
-            ail = 15000; // Return value is divided by 10
+#endif 
+            middle = 15000; // Return value is divided by 10
             break;
         };
-        ailIn = pulseIn(pin, HIGH, 25000);
-        if (ailIn != 0 && ailIn > 1000 && ailIn <2000)  {
-            ail = ail + ailIn ;
+        servoValue = pulseIn(pin, HIGH, 25000);
+        if (servoValue != 0 && servoValue > 950 && servoValue <2000)  {
+            middle = middle + servoValue ;
             a++ ;
-            Serial.print(a);
+#ifdef DEBUG
+            Serial.print(servoValue);
             Serial.print(": ");
-            Serial.println(ail);
+            Serial.println(middle / a);
+#endif 
             digitalWrite(ledPin, !digitalRead(ledPin));
-            delay(100);
+            delay(50);
         }
     }
+#ifdef DEBUG
     Serial.print(">> Fine Calibrazione, media: ");
-    Serial.println(ail / 10);
+    Serial.println(middle / 10 + 10);
     Serial.flush() ;
-    return(ail / 10) ;
+#endif 
+    return(middle / 10 + 10) ;
 // END calibrazione
-}
+};
 
index 66c3eee27e37d5689f0fa9904a086d561f7b1d82..97689614f08c1a5a7a119e960f17c10ba206b639 100644 (file)
@@ -158,7 +158,7 @@ void brilla(byte pin, int velocita = 200) ;
 
 byte lum(byte val);
 
-int calibraTrim(int pin, byte ledPin = 13);
+int calibraTrim(int pin, const byte ledPin = 13);
 
 
 #endif
index 4a84c01dd4fec7b27d3cde3cc8aad72160e91e30..7e1026d8ac910531e4b004621a413c55222282a9 100644 (file)
@@ -8,18 +8,16 @@
 
 void setup() {
   // I PINs vengono impostati dalla dichiarazione dell'ogetto.
-  Serial.begin(9600);
 }
 
 // Instanziamo un LED
-RGBLed led(11, 10,9); //Istanziamo un oggetto led (common catodo)
+RGBLed led(11, 10,9); //Istanziamo un oggetto led (default common catodo)
 // facente parte della classe RGBLed
-// RGBLed led(11, 10,9,255); // Stessa cosa: 255 = common catodo
-//RGBLed led(10,9,11,255); // Inizializzazione Common anodo, valori invertiti
+// RGBLed led(11, 10,9,255); // Stessa cosa: 255 = common catodo = (255 - value)
+//RGBLed led(10,9,11,0); // Inizializzazione Common anodo
 
 void loop() {
-  led.Blue();
-
+  led.Red();
 }
 
 /* Colori disponibili:
@@ -31,8 +29,9 @@ void loop() {
     White 
     Yellow 
     Off
+    Rand = random
     SetColor(byte r, byte g, byte b)
 
-Nota: per aggiungerne uno senza modificare la libreria originale
+Nota: per aggiungerne un colore senza modificare la libreria originale
 si potrebbe usara l'ereditarieta': vedi esempio "eredita.ino" .
 */