// Control de Bomba de Agua - WOKWI COMPATIBLE
#define TRIG_PIN 5
#define ECHO_PIN 18
#define MOTOR_PIN 23 // LED simula la bomba
long duration;
float distance;
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(MOTOR_PIN, OUTPUT);
Serial.println("Sistema de control de bomba iniciado...");
}
void loop() {
// Generar pulso para el sensor ultrasónico
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Leer tiempo de eco
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2; // Convertir a cm
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Control según nivel de agua
if (distance > 50) {
digitalWrite(MOTOR_PIN, HIGH); // Bomba encendida
Serial.println("Nivel BAJO → Bomba al 100%");
}
else if (distance > 20 && distance <= 50) {
digitalWrite(MOTOR_PIN, HIGH); // Bomba encendida
Serial.println("Nivel MEDIO → Bomba al 50%");
}
else {
digitalWrite(MOTOR_PIN, LOW); // Bomba apagada
Serial.println("Nivel ALTO → Bomba apagada");
}
Serial.println("------------------------------");
delay(1000);
}