9 de julio de 2026 · 9 min

Riego automático con Arduino: que las plantas se rieguen solas

Sensor de humedad de suelo, un relé y una bomba de 5 V: el proyecto útil por excelencia. Por qué el sensor capacitivo vale la diferencia, cómo calibrarlo bien y el código con histéresis para no ahogar la planta.

arduinoriegosensoresdomoticaproyectos

De todos los proyectos de esta serie, este es el que más termina instalado de verdad en una casa. No es un juguete de escritorio: es la maceta que sobrevive a tus vacaciones. Y es también el proyecto donde más gente compra el sensor equivocado — arranquemos por ahí.

Capacitivo vs resistivo: comprá el correcto

Hay dos tipos de sensor de humedad de suelo y se ven parecidos:

Para este proyecto: capacitivo, sin discusión. Vela en la tienda.

Lista de compra

ComponenteCantidadNota
Arduino Nano1Sobra con un Nano
Sensor humedad de suelo capacitivo1v1.2 o similar
Módulo relé 1 canal 5V1Con optoacoplador
Mini bomba de agua sumergible 5V1+ manguera
Fuente 5V 2A1Alimenta todo el sistema
Cables dupont1 juego
Recipiente para agua1Balde, bidón cortado, lo que haya

Conexionado

Sensor capacitivo: AOUT → A0, VCC → 5V, GND → GND. Módulo relé: IN → pin 7, VCC → 5V, GND → GND. Bomba: un cable al (+) de la fuente, el otro pasa por los bornes COM y NO (normal abierto) del relé, y vuelve al (−). La bomba va sumergida en el recipiente, con la manguera apuntando a la maceta.

Importante: la bomba NO se alimenta desde el pin 5V del Arduino — los picos del motor lo resetean. Fuente de 5 V 2 A para todo: la bomba por el relé, y el Arduino por su pin 5V o USB. Si dudás con la alimentación, tenemos una guía completa de fuentes y reguladores.

Primero: calibrar el sensor

Los sensores capacitivos no dan “porcentaje de humedad” — dan un número crudo que depende de tu sensor, tu suelo y tu cableado. Cargá esto primero y anotá dos valores:

void setup() { Serial.begin(9600); }
void loop() {
  Serial.println(analogRead(A0));
  delay(500);
}
  1. Sensor al aire (seco total): anotá el valor. Típico: ~590.
  2. Sensor en un vaso de agua (sin pasar la línea marcada): anotá. Típico: ~270.

Con esos dos números, el código principal mapea a porcentaje real.

El código con histéresis

¿Por qué histéresis? Si regás “cuando humedad < 40%”, el valor oscila alrededor de 40 y el relé traquetea prendido-apagado como castañuela. La solución: regar cuando baja de 35% y cortar recién cuando supera 55%. Dos umbrales, cero traqueteo.

const int PIN_SENSOR = A0;
const int PIN_RELE = 7;

// TUS valores de calibracion (paso anterior):
const int VALOR_SECO = 590;
const int VALOR_AGUA = 270;

const int UMBRAL_REGAR = 35;   // % - arranca el riego
const int UMBRAL_CORTAR = 55;  // % - lo corta
const unsigned long RIEGO_MAX_MS = 30000;  // seguridad: 30 s maximo

// La mayoria de los modulos rele son ACTIVO-BAJO:
const int RELE_ON = LOW;
const int RELE_OFF = HIGH;

bool regando = false;
unsigned long inicioRiego = 0;

void setup() {
  pinMode(PIN_RELE, OUTPUT);
  digitalWrite(PIN_RELE, RELE_OFF);
  Serial.begin(9600);
}

int humedadPorcentaje() {
  // promedio de 10 lecturas para estabilidad
  long suma = 0;
  for (int i = 0; i < 10; i++) { suma += analogRead(PIN_SENSOR); delay(10); }
  int crudo = suma / 10;
  int pct = map(crudo, VALOR_SECO, VALOR_AGUA, 0, 100);
  return constrain(pct, 0, 100);
}

void loop() {
  int hum = humedadPorcentaje();
  Serial.print("Humedad: "); Serial.print(hum); Serial.println("%");

  if (!regando && hum < UMBRAL_REGAR) {
    regando = true;
    inicioRiego = millis();
    digitalWrite(PIN_RELE, RELE_ON);
    Serial.println(">> Riego ON");
  }

  if (regando) {
    bool humedaOk = (hum >= UMBRAL_CORTAR);
    bool timeout = (millis() - inicioRiego > RIEGO_MAX_MS);
    if (humedaOk || timeout) {
      regando = false;
      digitalWrite(PIN_RELE, RELE_OFF);
      Serial.println(timeout ? ">> Riego OFF (timeout!)" : ">> Riego OFF");
    }
  }
  delay(2000);
}

El RIEGO_MAX_MS es el seguro de vida del sistema: si el sensor se desconecta o la manguera se sale de la maceta, la bomba no queda prendida inundando el living. Nunca instales un riego automático sin timeout.

Errores comunes

  1. Relé al revés: la mayoría de los módulos son activo-bajo (LOW = prendido). Si tu bomba arranca prendida y se apaga al “activar”, invertí RELE_ON/RELE_OFF.
  2. Sensor enterrado hasta el conector: la línea blanca del sensor marca el máximo. Si el agua llega a la electrónica, se termina el proyecto.
  3. Bomba en seco: las bombas sumergibles se refrigeran con el agua que mueven. Sin agua en el recipiente, se queman. Bonus: un sensor de nivel o un flotador resuelve el aviso de “recargar bidón”.
  4. Regar a chorro una maceta chica: 30 segundos de bomba pueden ser mucho. Ajustá RIEGO_MAX_MS al tamaño de tu maceta (empezá con 5–10 s).

Para llevarlo más lejos

El kit de riego completo

Sensor capacitivo, relé, bomba, fuente y Nano: todo en electronicabyp.com.ar con envío a toda Argentina. ¿Proyecto más grande — invernadero, vivero, huerta? Contanos por WhatsApp y lo dimensionamos juntos.


¿Necesitás los componentes de esta guía? Los encontrás en electronicabyp.com.ar — hacemos envíos a toda Argentina. Para cotizaciones por cantidad, escribinos por WhatsApp.