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;
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(motorIn, OUTPUT);
pinMode(motorOut, OUTPUT);
}
void loop() {
int waterLevelr = digitalRead(initial);
int waterLevely = digitalRead(medium);
int waterLevelg = digitalRead(full);
int waterLevelb = digitalRead(overflow);
//red
if ((waterLevelr == LOW)&&(waterLevely == HIGH)) {
digitalWrite(rLed, HIGH);
digitalWrite(motorIn, HIGH);
}
//yellow
if ((digitalRead(medium) == LOW)&&(waterLevelr == LOW)&&(waterLevelg == HIGH)) {
digitalWrite(yLed, HIGH);
digitalWrite(rLed, LOW);
digitalWrite(motorIn, HIGH);
}
//green
if ((digitalRead(full) == LOW)&&((digitalRead(medium) == LOW)&&(waterLevelr == LOW))) {
digitalWrite(yLed, LOW);
digitalWrite(gLed, HIGH);
digitalWrite(rLed, LOW);
digitalWrite(motorIn, LOW);
}
//buzzer
if ((digitalRead(overflow) == LOW)&&(digitalRead(full) == LOW)&&(digitalRead(medium) == LOW)&&(waterLevelr == LOW)) { // Water level full
digitalWrite(rLed, LOW);
digitalWrite(yLed, LOW);
tone(buzz, 1000);
delay(3000);
noTone(buzz);
digitalWrite(motorOut, HIGH);
}
else {
digitalWrite(rLed, LOW);
digitalWrite(yLed, LOW);
digitalWrite(gLed, LOW);
digitalWrite(motorIn, LOW);
if (waterLevelr == LOW && waterLevely == HIGH && waterLevelg == HIGH && waterLevelb == HIGH) {
digitalWrite(motorOut, LOW);
}
}
}