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");
}

// Definimos los pines del driver L298N
ReplyDelete#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");
}
// Definimos los pines del driver L298N
ReplyDelete#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");
}