//////////////////////
// RGB LED
-// Common anode
+// Common anode / cat
RGBLed::RGBLed(byte pinR, byte pinG, byte pinB) {
redPin = pinR ;
greenPin = pinG ;
bluePin = pinB ;
+ common = 0 ;
+
+ // Equvalente del Setup() per inizializzare i PIN
+ pinMode(redPin, OUTPUT);
+ pinMode(greenPin, OUTPUT);
+ pinMode(greenPin, OUTPUT);
+};
+
+RGBLed::RGBLed(byte pinR, byte pinG, byte pinB, byte com) {
+ // Per un common catode, inverte il valore max / min
+ redPin = pinR ;
+ greenPin = pinG ;
+ bluePin = pinB ;
+ common = com ;
// Equvalente del Setup() per inizializzare i PIN
pinMode(redPin, OUTPUT);
void RGBLed::SetColor (byte r, byte g, byte b) {
// Imposta il colore di un LED RGB
- analogWrite(redPin, r);
- analogWrite(greenPin, g);
- analogWrite(bluePin, b);
+ analogWrite(redPin, common - r);
+ analogWrite(greenPin, common - g);
+ analogWrite(bluePin, common - b);
};
void RGBLed::Red () {
byte redValue ;
byte greenValue ;
byte blueValue ;
+ byte common ;
public:
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 Red ();
void Green ();
}
// Instanziamo un LED
-RGBLed led(11, 10, 9); //Istanziamo un oggetto led facente parte
- // della classe RGBLed
+RGBLed led(11, 10,9); //Istanziamo un oggetto led (common catodo)
+// facente parte della classe RGBLed
+//RGBLed led(10, 9, 11,255); // Inizializzazione Common anodo, valori invertiti
void loop() {
led.Red();
- delay(1000);
- led.SetColor(255, 0, 255) ; // Mettiamo il LED in Green
- delay(1000);
- led.Off();
+
}
/* Colori disponibili: