]> git.piffa.net Git - sketchbook_andrea/commitdiff
Riordinato RGB per common anodo / catodo
authorAndrea Manni <andrea@piffa.net>
Thu, 9 Feb 2017 02:35:57 +0000 (03:35 +0100)
committerAndrea Manni <andrea@piffa.net>
Thu, 9 Feb 2017 02:35:57 +0000 (03:35 +0100)
Il default rimane common cat pero' il common anodo
si dichiara all'opposto con 0 invece che 255.

RGB_LED/rgb_0/rgb_0.ino
libraries/common/common.cpp
libraries/common/common.h
libraries/common/examples/rgb/rgb.ino

index d69d4515c056f01c135adff524213e96e657679c..cbfcfa8e064db5042aeee6e6ed7f5fb9dac5b892 100644 (file)
@@ -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:
index 1d9153bb0547037ad3d955b723fa5c8befff9a46..4a2c914731d01742eca4bae12c33f6f0c784da3b 100644 (file)
@@ -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
index 7f87600b466749d4a3476037c691ce2df212fdeb..66c3eee27e37d5689f0fa9904a086d561f7b1d82 100644 (file)
@@ -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 ();
index 0dd3863b15b2ff897ad621a270c0406c5e3d2bc4..4a84c01dd4fec7b27d3cde3cc8aad72160e91e30 100644 (file)
@@ -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" .