From: Andrea Manni 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" .