#define CATHODE 0
#define ANODE 1
class RGB_LED {
public:
RGB_LED(int red, int green, int blue, bool type){
this->red = red;
this->green = green;
this->blue = blue;
this->type = type;
}
void init(){
pinMode(this->red, OUTPUT);
pinMode(this->green, OUTPUT);
pinMode(this->blue, OUTPUT);
if(type){
digitalWrite(this->red, HIGH);
digitalWrite(this->green, HIGH);
digitalWrite(this->blue, HIGH);
}
}
void setColor(int r, int g, int b){
if(!type){
analogWrite(this->red, r);
analogWrite(this->green, g);
analogWrite(this->blue, b);
} else {
analogWrite(this->red, map(r, 0, 255, 255, 0));
analogWrite(this->green, map(g, 0, 255, 255, 0));
analogWrite(this->blue, map(b, 0, 255, 255, 0));
}
}
private:
int red,green,blue;
bool type;
};
RGB_LED rgba(3,5,6, ANODE);
RGB_LED rgbc(9,10,11, CATHODE);
void setup(){
rgbc.init();
rgba.init();
}
void loop(){
rgba.setColor(255,0,0);
rgbc.setColor(255,0,0);
delay(1000);
rgba.setColor(0,255,0);
rgbc.setColor(0,255,0);
delay(1000);
rgba.setColor(0,0,255);
rgbc.setColor(0,0,255);
delay(1000);
}