Sistema de Regadío automatizado


 

Programación

// Definición de pines
#define SENSOR_HUMEDAD A0 // Pin analógico para el sensor de humedad
#define IN1 5  // Pin IN1 del driver L298N
#define IN2 6  // Pin IN2 del driver L298N
#define ENA 9  // Pin ENA para control de velocidad PWM

// Umbral de humedad para activar la bomba
#define UMBRAL_SECO 600  // Ajusta este valor según tu sensor y tipo de suelo

void setup() {
    pinMode(IN1, OUTPUT);
    pinMode(IN2, OUTPUT);
    pinMode(ENA, OUTPUT);
    pinMode(SENSOR_HUMEDAD, INPUT);
    Serial.begin(9600);
}

void loop() {
    int humedad = analogRead(SENSOR_HUMEDAD); // Leer el sensor de humedad
    Serial.print("Humedad del suelo: ");
    Serial.println(humedad);
    
    if (humedad > UMBRAL_SECO) {
        encenderBomba();
    } else {
        apagarBomba();
    }
    
    delay(2000); // Esperar 2 segundos antes de la próxima lectura
}

void encenderBomba() {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    analogWrite(ENA, 200); // Controla la velocidad de la bomba (0-255)
    Serial.println("Bomba ENCENDIDA");
}

void apagarBomba() {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    Serial.println("Bomba APAGADA");
}

 Materiales: Kit puerta que habla, PIDELO AL 933952291 o por el correo kitsmakers@gmail.com o missazuleducation@gmail.com

Comments

  1. // Definimos los pines del driver L298N
    #define IN1 5 // Pin de control del motor
    #define IN2 6 // Pin de control del motor
    #define ENABLE 9 // Pin de velocidad del motor (PWM)

    // Definimos el pin del sensor de humedad
    #define SENSOR_PIN A0

    // Umbral de humedad (ajustable según necesidades)
    #define UMBRAL_HUMEDAD 500

    void setup() {
    pinMode(IN1, OUTPUT);
    pinMode(IN2, OUTPUT);
    pinMode(ENABLE, OUTPUT);
    pinMode(SENSOR_PIN, INPUT);
    Serial.begin(9600);
    }

    void loop() {
    int humedad = analogRead(SENSOR_PIN);
    Serial.print("Humedad: ");
    Serial.println(humedad);

    if (humedad > UMBRAL_HUMEDAD) { // Suelo seco, encender bomba
    encenderBomba();
    } else { // Suelo húmedo, apagar bomba
    apagarBomba();
    }
    delay(1000); // Espera de 1 segundo para evitar lecturas erráticas
    }

    void encenderBomba() {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    analogWrite(ENABLE, 255); // Velocidad máxima
    Serial.println("Bomba ENCENDIDA");
    }

    void apagarBomba() {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    analogWrite(ENABLE, 0);
    Serial.println("Bomba APAGADA");
    }

    ReplyDelete
  2. // Definimos los pines del driver L298N
    #define IN1 5 // Pin de control del motor
    #define IN2 6 // Pin de control del motor
    #define ENABLE 9 // Pin de velocidad del motor (PWM)

    // Definimos el pin del sensor de agua
    #define SENSOR_PIN A0

    void setup() {
    pinMode(IN1, OUTPUT);
    pinMode(IN2, OUTPUT);
    pinMode(ENABLE, OUTPUT);
    pinMode(SENSOR_PIN, INPUT);
    Serial.begin(9600);
    }

    void loop() {
    int nivelAgua = analogRead(SENSOR_PIN);
    Serial.print("Nivel de agua: ");
    Serial.println(nivelAgua);

    if (nivelAgua < 500) { // Agua baja, encender bomba
    encenderBomba();
    } else { // Agua presente, apagar bomba
    apagarBomba();
    }
    delay(1000); // Espera de 1 segundo para evitar lecturas erráticas
    }

    void encenderBomba() {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    analogWrite(ENABLE, 255); // Velocidad máxima
    Serial.println("Bomba ENCENDIDA");
    }

    void apagarBomba() {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    analogWrite(ENABLE, 0);
    Serial.println("Bomba APAGADA");
    }

    ReplyDelete

Post a Comment

Popular posts from this blog

Python con Arduino + Interfaz

Te cuento mi aventura como mestra IB de Design y STEM

¡ParkingBot 3000! – Tu cochera con cerebro electrónico