// Program: Level_control-E_v4.ino
// Wokwi: https://wokwi.com/projects/377193727837255681
// Water Tank Level Control System - Part 2
// Define I/O pins
#define Valve 25
#define Sensor 36
String Action = "Off";
void setup() {
Serial.begin(115200);
pinMode(Valve, OUTPUT);
digitalWrite(Valve, LOW); // For safety consideration
}
void loop() {
int Sensor_Value, Water_Level;
// String Action;
Sensor_Value = analogRead(Sensor);
Water_Level = map(Sensor_Value, 0, 4095, 0, 100);
if (Water_Level < 40) {
digitalWrite(Valve, HIGH);
Action = " On";
} else if (Water_Level > 60) {
digitalWrite(Valve, LOW);
Action = "Off";
}
Serial.print("Sensor value = ");
Serial.print(leading_space(Sensor_Value));
Serial.print(Sensor_Value);
Serial.print("\t");
Serial.print("Water level = ");
Serial.print(leading_space(Water_Level));
Serial.print(Water_Level);
Serial.print("\t");
Serial.print("Motor = ");
Serial.println(Action);
delay(500);
}
String leading_space(int x) {
switch(String(x).length()) {
case 1: return " ";
break;
case 2: return " ";
break;
case 3: return " ";
break;
case 4: return "";
break;
}
}