const int checkDriver[5] = {23, 22, 21, 19, 18};//RoyalBlue, Blue, RedGreen, White1, White2
const int Driver[5] = {12, 14, 32, 33, 25};//RoyalBlue, Blue, RedGreen, White1, White2
const int mode = 4;
const int color = 2;
const int brightness = 15;
int count = 0;
int presentValue = 0;
int lastValue = 0;
void setup() {
pinMode(mode, INPUT);
pinMode(color, INPUT);
pinMode(brightness, INPUT);
pinMode(checkDriver[0], OUTPUT);
pinMode(checkDriver[1], OUTPUT);
pinMode(checkDriver[2], OUTPUT);
pinMode(checkDriver[3], OUTPUT);
pinMode(checkDriver[4], OUTPUT);
pinMode(Driver[0], OUTPUT);
pinMode(Driver[1], OUTPUT);
pinMode(Driver[2], OUTPUT);
pinMode(Driver[3], OUTPUT);
pinMode(Driver[4], OUTPUT);
Serial.begin(115200);
count=0;
}
void adjust(){
presentValue = analogRead(brightness);
if(presentValue != lastValue){
Serial.print("Driver ");
Serial.print(count);
Serial.print("= ");
Serial.println(presentValue/24);
analogWrite(Driver[count], presentValue);
lastValue = presentValue;
}
}
void loop() {
while(digitalRead(mode) == HIGH){
digitalWrite(checkDriver[3], LOW);
digitalWrite(checkDriver[4], LOW);
digitalWrite(checkDriver[count], HIGH);
if(digitalRead(color) == 1){
delay(500);
if(digitalRead(color) == LOW){
digitalWrite(checkDriver[count], LOW);
count++;
digitalWrite(checkDriver[count], HIGH);
if(count == 5){
count = 0;
}
}
}
adjust();
}
digitalWrite(checkDriver[count], LOW);
count = 0;
digitalWrite(checkDriver[3], HIGH);
digitalWrite(checkDriver[4], HIGH);
adjust();
}