const int LDR_PIN = A0;
const int RELAY_PIN = 7;
const int LED_GREEN = 8;
const int LED_RED = 9;
const int LED_YELLOW = 10;
const int SWITCH_PIN = 2;
const int LIGHT_THRESHOLD = 500;
void setup() {
pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(SWITCH_PIN, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int switchState = digitalRead(SWITCH_PIN);
int lightLevel = analogRead(LDR_PIN);
if (switchState == LOW) {
digitalWrite(LED_YELLOW, LOW);
if (lightLevel > LIGHT_THRESHOLD) { switchToSolar(); }
else { switchToGrid(); }
} else {
digitalWrite(LED_YELLOW, HIGH);
if (lightLevel > LIGHT_THRESHOLD) { switchToSolar(); }
else { switchToGrid(); }
}
delay(1000);
}
void switchToSolar() {
digitalWrite(RELAY_PIN, HIGH);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_RED, LOW);
}
void switchToGrid() {
digitalWrite(RELAY_PIN, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_RED, HIGH);
}