Chat

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 = 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); }
303 days

1:02

303 days

Ready.


To get started, talk to Flux or create a New Document.

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Depressed Orange T-800

    Depressed Orange T-800 thumbnail
    Welcome to your new project. Imagine what you can build here.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Controls