From: Andrea Manni <andrea@piffa.net>
Date: Thu, 9 Feb 2017 02:35:57 +0000 (+0100)
Subject: Riordinato RGB per common anodo / catodo
X-Git-Url: http://git.piffa.net/web?a=commitdiff_plain;h=7c79d934db934bad1a54e11e4524dd4089615653;p=sketchbook_andrea

Riordinato RGB per common anodo / catodo
Il default rimane common cat pero' il common anodo
si dichiara all'opposto con 0 invece che 255.
---

diff --git a/RGB_LED/rgb_0/rgb_0.ino b/RGB_LED/rgb_0/rgb_0.ino
index d69d451..cbfcfa8 100644
--- a/RGB_LED/rgb_0/rgb_0.ino
+++ b/RGB_LED/rgb_0/rgb_0.ino
@@ -22,9 +22,24 @@ void setup()
 
 void loop()
 {
-  analogWrite(redPin, 255);
+  // Red
+  analogWrite(redPin, 0);
   analogWrite(greenPin,255);
   analogWrite(bluePin, 255);
+  delay(1000);
+
+    // Green
+  analogWrite(redPin, 255);
+  analogWrite(greenPin,0);
+  analogWrite(bluePin, 255);
+  delay(1000);
+  
+  // Blue
+  analogWrite(redPin, 255);
+  analogWrite(greenPin,255);
+  analogWrite(bluePin, 0);
+  delay(1000);
+  
 }
 
 /* Domande:
diff --git a/libraries/common/common.cpp b/libraries/common/common.cpp
index 1d9153b..4a2c914 100644
--- a/libraries/common/common.cpp
+++ b/libraries/common/common.cpp
@@ -20,7 +20,7 @@ RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
     redPin    = pinR ;
     greenPin  = pinG ;
     bluePin   = pinB ;
-    common    = 0 ;
+    common    = 255 ;
 
     // Equvalente del Setup() per inizializzare i PIN
     pinMode(redPin, OUTPUT);
@@ -46,46 +46,62 @@ void RGBLed::SetColor (byte r, byte g, byte b) {
     analogWrite(redPin,   common - r);
     analogWrite(greenPin, common - g);
     analogWrite(bluePin,  common - b);
+
+// Debug
+//   Serial.print(common - r);
+//   Serial.print("-");
+//   Serial.print(common - g);
+//   Serial.print("-");
+//   Serial.print(common - b);
+//   while(1);
+
+};
+
+void RGBLed::Rand () {
+// Imposta il colore di un LED RGB
+    analogWrite(redPin, random(0,256));
+    analogWrite(greenPin, random(0,256));
+    analogWrite(bluePin, random(0,256));
 };
 
 void RGBLed::Red () {
 // Accende il LED di rosso
-    SetColor(0,255,255);
+    SetColor(255,0,0);
 };
 
 void RGBLed::Green () {
 // Accende il LED di verde
-    SetColor(255,0,255);
+    SetColor(0,255,0);
 };
 
 void RGBLed::Blue () {
 // Accende il LED di blu
-    SetColor(255,255,0);
+    SetColor(0,0,255);
 };
 
 void RGBLed::Magenta () {
 // Accende il LED di magenta
-    SetColor(0,255,0);
+    SetColor(255,0,255);
 };
 
 void RGBLed::Cyano () {
 // Accende il LED di Cyano
-    SetColor(255,0,0);
+    SetColor(0,255,255);
 };
 
 void RGBLed::Yellow () {
 // Accende il LED di giallo
-    SetColor(0,0,255);
+    SetColor(255,255,0);
 };
 
 void RGBLed::White () {
 // Accende il LED
-    SetColor(0,0,0);
+    SetColor(255,255,255);
 };
 
 void RGBLed::Off () {
 // Spegne il LED
-    SetColor(255,255,255);
+    SetColor(0,0,0);
 };
 
 
@@ -372,24 +388,23 @@ int calibraTrim(int pin, byte ledPin) {
     Serial.println(">> Calibrazione: ");
     while (a < 10) {
         if (millis() > 10000) {
-            Serial.print(">> Calibrazione annullata: segnale assente.");
-            ail = 1500;
+            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
             break;
         };
         ailIn = pulseIn(pin, HIGH, 25000);
-        if (ailIn != 0 ) {
+        if (ailIn != 0 && ailIn > 1000 && ailIn <2000)  {
             ail = ail + ailIn ;
             a++ ;
             Serial.print(a);
             Serial.print(": ");
             Serial.println(ail);
             digitalWrite(ledPin, !digitalRead(ledPin));
-            delay(10);
+            delay(100);
         }
     }
-    Serial.println(">> Fine Calibrazione: ");
-    Serial.print(ail / 10);
-    Serial.println("--");
+    Serial.print(">> Fine Calibrazione, media: ");
+    Serial.println(ail / 10);
     Serial.flush() ;
     return(ail / 10) ;
 // END calibrazione
diff --git a/libraries/common/common.h b/libraries/common/common.h
index 7f87600..66c3eee 100644
--- a/libraries/common/common.h
+++ b/libraries/common/common.h
@@ -54,6 +54,7 @@ class RGBLed {
     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 ();
diff --git a/libraries/common/examples/rgb/rgb.ino b/libraries/common/examples/rgb/rgb.ino
index 0dd3863..4a84c01 100644
--- a/libraries/common/examples/rgb/rgb.ino
+++ b/libraries/common/examples/rgb/rgb.ino
@@ -8,15 +8,17 @@
 
 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)
 // 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
 
 void loop() {
-  led.White();
+  led.Blue();
 
 }
 
@@ -28,6 +30,8 @@ void loop() {
     Cyano 
     White 
     Yellow 
+    Off
+    SetColor(byte r, byte g, byte b)
 
 Nota: per aggiungerne uno senza modificare la libreria originale
 si potrebbe usara l'ereditarieta': vedi esempio "eredita.ino" .