int modeswitch = 8; int ledswitch = 9; int outswitch = 10; int outrelay = 3; int ledrelay = 4; int solarrelay = 2; int red = 5; int green = 6; int blue = 7; void setup() { pinMode(modeswitch, INPUT); pinMode(ledswitch, INPUT); pinMode(outswitch, INPUT); pinMode(outrelay, OUTPUT); pinMode(ledrelay, OUTPUT); pinMode(solarrelay, OUTPUT); pinMode(red, OUTPUT); pinMode(green, OUTPUT); pinMode(blue, OUTPUT); } void loop() { int sensorValue = analogRead(A0); float voltage = sensorValue * (3 * (5.0 / 1023.0)); if (voltage >= 13.5){ digitalWrite(solarrelay, HIGH); digitalWrite(green, HIGH); digitalWrite(red, LOW); digitalWrite(blue, LOW); if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == LOW && digitalRead(outswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, HIGH); } if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == LOW && digitalRead(modeswitch) == HIGH){ digitalWrite(ledrelay, HIGH); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == LOW && digitalRead(modeswitch) == LOW){ digitalWrite(outrelay, LOW); digitalWrite(ledrelay, HIGH); delay(1000); digitalWrite(ledrelay, LOW); delay(1000); } if(digitalRead(ledswitch) == LOW && digitalRead(outswitch) == LOW){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } } if (voltage < 13.5 && voltage >= 10.5){ digitalWrite(solarrelay, LOW); digitalWrite(green, LOW); digitalWrite(red, LOW); digitalWrite(blue, HIGH); if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == LOW && digitalRead(outswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, HIGH); } if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == LOW && digitalRead(modeswitch) == HIGH){ digitalWrite(ledrelay, HIGH); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == LOW && digitalRead(modeswitch) == LOW){ digitalWrite(outrelay, LOW); digitalWrite(ledrelay, HIGH); delay(1000); digitalWrite(ledrelay, LOW); delay(1000); } if(digitalRead(ledswitch) == LOW && digitalRead(outswitch) == LOW){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } } if (voltage < 10.5){ digitalWrite(solarrelay, LOW); digitalWrite(green, LOW); digitalWrite(red, HIGH); digitalWrite(blue, LOW); if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == LOW && digitalRead(outswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == LOW && digitalRead(modeswitch) == HIGH){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } if(digitalRead(ledswitch) == HIGH && digitalRead(outswitch) == LOW && digitalRead(modeswitch) == LOW){ digitalWrite(outrelay, LOW); digitalWrite(ledrelay, LOW); } if(digitalRead(ledswitch) == LOW && digitalRead(outswitch) == LOW){ digitalWrite(ledrelay, LOW); digitalWrite(outrelay, LOW); } } }