Arduino Code for Water Level Monitoring with Flip-Flop Output
cpp
Copy
const int waterSensorPin = A0; // Analog pin for water level sensor
const int outputPin = 13; // Output pin (LED or relay)
const int lowThreshold = 300; // Low water level threshold (adjust based on
sensor)
const int highThreshold = 600; // High water level threshold (adjust based on
sensor)
boolean outputState = false; // Tracks output state (false = OFF, true = ON)
void setup() {
pinMode(outputPin, OUTPUT); // Set output pin as OUTPUT
digitalWrite(outputPin, outputState); // Initialize output state
Serial.begin(9600); // Start Serial for debugging
}
void loop() {
int waterLevel = analogRead(waterSensorPin); // Read water level (0-1023)
// Print water level for debugging
Serial.print("Water Level: ");
Serial.println(waterLevel);
// Flip-flop logic based on water level thresholds
if (waterLevel >= highThreshold && !outputState) {
outputState = true; // Toggle output ON
digitalWrite(outputPin, HIGH);
} else if (waterLevel <= lowThreshold && outputState) {
outputState = false; // Toggle output OFF
digitalWrite(outputPin, LOW);
}
delay(100); // Small delay for stable readings
}