Puedes ayudare a arreglar este codigo para que funcione correctamente?
Servo servoAlerta;
// Pines
const int pinLuz = A0;
const int pinAgua = A1;
const int pinServoAlerta = 9;
// Umbrales con histeresis
const int umbralLuz = 500;
const int histeresisLuz = 20;
const int umbralAgua = 500;
const int histeresisAgua = 20;
// Estados
bool luzActiva = false;
bool aguaActiva = false;
bool alertaActiva = false;
void setup() {
servoAlerta.attach(pinServoAlerta);
servoAlerta.write(0);
Serial.begin(9600);
}
void loop() {
int valorLuz = analogRead(pinLuz);
int valorAgua = analogRead(pinAgua);
// === Detección de oscuridad con histeresis ===
if (!luzActiva && valorLuz < umbralLuz - histeresisLuz) {
luzActiva = true;
} else if (luzActiva && valorLuz > umbralLuz + histeresisLuz) {
luzActiva = false;
}
// === Detección de agua con histeresis ===
if (!aguaActiva && valorAgua > umbralAgua + histeresisAgua) {
aguaActiva = true;
} else if (aguaActiva && valorAgua < umbralAgua - histeresisAgua) {
aguaActiva = false;
}
// === Activar el servo si hay agua o falta de luz ===
if ((aguaActiva || luzActiva) && !alertaActiva) {
servoAlerta.write(180);
alertaActiva = true;
}
// === Desactivar el servo solo si NO hay agua NI falta de luz ===
if (!aguaActiva && !luzActiva && alertaActiva) {
servoAlerta.write(0);
alertaActiva = false;
}
// Debug
Serial.print("Luz: "); Serial.print(valorLuz);
Serial.print(" | Agua: "); Serial.print(valorAgua);
Serial.print(" | LuzActiva: "); Serial.print(luzActiva);
Serial.print(" | AguaActiva: "); Serial.print(aguaActiva);
Serial.print(" | Servo: "); Serial.println(alertaActiva ? "ON" : "OFF");
delay(100);
}