int rLed = 2; // Pin for Red LED
int yLed = 3;
int gLed = 4; // Pin for Yellow LED
int buzz = 5; // Pin for Buzzer
int initial = 6;
int medium = 7;
int full = 8;
int overflow = 9; // Pin for Water level sensor (connected to a wire)
int motorIn = 10;
int motorOut = 11;
int onButton = 12;
int offButton = 13;
bool drain = false;
bool systemStart = false;
void setup() {
pinMode(rLed, OUTPUT);
pinMode(yLed, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(initial, INPUT_PULLUP);
pinMode(medium, INPUT_PULLUP);
pinMode(full, INPUT_PULLUP);
pinMode(overflow, INPUT_PULLUP);
pinMode(onButton, INPUT_PULLUP);
pinMode(offButton, INPUT_PULLUP);
pinMode(motorIn, OUTPUT);
pinMode(motorOut, OUTPUT);
}
void loop() {
if (digitalRead(onButton) == LOW) {
systemStart = true;
}
if (systemStart == true) {
// Read sensor values
int initialValue = digitalRead(initial);
int mediumValue = digitalRead(medium);
int fullValue = digitalRead(full);
int overflowValue = digitalRead(overflow);
// Control motors
if (digitalRead(rLed) == HIGH) {
drain = false;
}
if (overflowValue == LOW) {
drain = true;
}
if (!drain) {
digitalWrite(motorIn, HIGH);
digitalWrite(motorOut, LOW);
} else {
digitalWrite(motorIn, LOW);
digitalWrite(motorOut, HIGH);
}
// Control LEDs based on sensor readings
if (initialValue == LOW && mediumValue == HIGH) {
digitalWrite(rLed, HIGH);
} else {
digitalWrite(rLed, LOW);
}
if (mediumValue == LOW && fullValue == HIGH) {
digitalWrite(yLed, HIGH);
} else {
digitalWrite(yLed, LOW);
}
if (fullValue == LOW && overflowValue == HIGH) {
digitalWrite(gLed, HIGH);
} else {
digitalWrite(gLed, LOW);
}
if (overflowValue == LOW) {
digitalWrite(buzz, HIGH);
delay(3000);
digitalWrite(buzz, LOW);
}
}
if (digitalRead(offButton) == LOW && digitalRead(rLed) == HIGH) {
systemStart = false;
}
if (systemStart == false){
digitalWrite(rLed,LOW);
digitalWrite(motorOut, LOW);
}
}