i just made this project for rgb color mixing, now i wanna add two more buttons or potentiometer for dimmer that could control each mode bright or dim. i tried many ways but that just spoil colors each mode. i,m looking for master dimmer that could control each mode correctly, here is the code, help will be appreciated, thanks in advance
int button = 14;
int button2 = 12;
int RED = 2;
int GREEN = 4;
int BLUE = 5;
// colors
int mode;
void setup() {
Serial.begin(115200);
//setup LED lights
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
//setup buttons
pinMode (button, INPUT_PULLUP);
pinMode (button2, INPUT_PULLUP);
}
void loop() {
if (digitalRead(button) == LOW) {
delay(300);
mode++;
if(mode == 32)
{
mode = 0;
}
}
if(digitalRead(button2) == LOW) {
delay(300);
mode--;
if(mode == 0)
{
mode = 1;
}
}
//Off
if (mode == 0) {
analogWrite(BLUE, 255);
analogWrite(GREEN, 255);
analogWrite(RED, 255);
}
//White
if (mode == 1) {
analogWrite(BLUE, 0);
analogWrite(GREEN, 0);
analogWrite(RED, 0);
}
if (mode == 2) {
analogWrite(BLUE, 0);
analogWrite(GREEN, 50);
analogWrite(RED, 255);
}
if (mode == 3) {
analogWrite(BLUE, 0);
analogWrite(GREEN, 100);
analogWrite(RED, 255);
}
if (mode == 4) {
analogWrite(BLUE, 0);
analogWrite(GREEN, 125);
analogWrite(RED, 255);
}
if (mode == 5) {
analogWrite(BLUE, 0);
analogWrite(GREEN, 200);
analogWrite(RED, 255);
}
if (mode == 6) {
analogWrite(BLUE, 0);
analogWrite(GREEN, 255);
analogWrite(RED, 255);
}
if (mode == 7) {
analogWrite(BLUE, 50);
analogWrite(GREEN, 0);
analogWrite(RED, 255);
}
if (mode == 8) {
analogWrite(BLUE, 100);
analogWrite(GREEN, 0);
analogWrite(RED, 255);
}
if (mode == 9) {
analogWrite(BLUE, 150);
analogWrite(GREEN, 0);
analogWrite(RED, 255);
}
if (mode == 10) {
analogWrite(BLUE, 200);
analogWrite(GREEN, 0);
analogWrite(RED, 255);
}
if (mode == 11) {
analogWrite(BLUE, 255);
analogWrite(GREEN, 0);
analogWrite(RED, 255);
}
if (mode == 12) {
analogWrite(BLUE, 255);
analogWrite(GREEN, 0);
analogWrite(RED, 200);
}
if (mode == 13) {
analogWrite(BLUE, 255);
analogWrite(GREEN, 0);
analogWrite(RED, 150);
}
if (mode == 14) {
analogWrite(BLUE, 255);
analogWrite(GREEN, 0);
analogWrite(RED, 100);
}
if (mode == 15) {
analogWrite(BLUE, 255);
analogWrite(GREEN, 0);
analogWrite(RED, 50);
}
if (mode == 16) {
analogWrite(BLUE, 255);
analogWrite(GREEN,0);
analogWrite(RED, 0);
}
if (mode == 17) {
analogWrite(BLUE, 255);
analogWrite(GREEN,255);
analogWrite(RED, 0);
}
if (mode == 18) {
analogWrite(BLUE, 200);
analogWrite(GREEN,255);
analogWrite(RED, 0);
}
if (mode == 19) {
analogWrite(BLUE, 150);
analogWrite(GREEN,255);
analogWrite(RED, 0);
}
if (mode == 20) {
analogWrite(BLUE, 100);
analogWrite(GREEN,255);
analogWrite(RED, 0);
}
if (mode == 21) {
analogWrite(BLUE, 50);
analogWrite(GREEN,255);
analogWrite(RED, 0);
}
if (mode == 22) {
analogWrite(BLUE, 0);
analogWrite(GREEN,255);
analogWrite(RED, 0);
}
if (mode == 23) {
analogWrite(BLUE, 0);
analogWrite(GREEN,255);
analogWrite(RED, 50);
}
if (mode == 24) {
analogWrite(BLUE, 0);
analogWrite(GREEN,255);
analogWrite(RED, 100);
}
if (mode == 25) {
analogWrite(BLUE, 0);
analogWrite(GREEN,255);
analogWrite(RED, 150);
}
if (mode == 26) {
analogWrite(BLUE, 0);
analogWrite(GREEN,255);
analogWrite(RED, 200);
}
if (mode == 27) {
analogWrite(BLUE, 0);
analogWrite(GREEN,50);
analogWrite(RED, 200);
}
if (mode == 28) {
analogWrite(BLUE, 0);
analogWrite(GREEN,100);
analogWrite(RED, 150);
}
if (mode == 29) {
analogWrite(BLUE, 0);
analogWrite(GREEN,150);
analogWrite(RED, 100);
}
if (mode == 30) {
analogWrite(BLUE, 0);
analogWrite(GREEN,200);
analogWrite(RED, 50);
}
if (mode == 31) {
analogWrite(BLUE, 200);
analogWrite(GREEN,150);
analogWrite(RED, 0);
}
if (mode == 32) {
analogWrite(BLUE, 150);
analogWrite(GREEN,200);
analogWrite(RED, 0);
}
}