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:
redPin = pinR ;
greenPin = pinG ;
bluePin = pinB ;
- common = 0 ;
+ common = 255 ;
// Equvalente del Setup() per inizializzare i PIN
pinMode(redPin, OUTPUT);
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);
};
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
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();
}
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" .