AIDARAC sensor de humedad: EFICACIA 100, DIFICULTAD 0.
🎯 OBJETIVO DEL PROYECTO
Medir la humedad del suelo y visualizar el valor en el monitor serie del Arduino IDE.
🧰 MATERIAL NECESARIO
- 🟢 Arduino Mega 2560
- 🌱 Sensor de humedad del suelo (tipo resistivo o capacitivo, con módulo comparador)
- 🔌 Cable USB para Arduino
- 🧵 3 cables Dupont (macho-macho)
- 💻 Ordenador con Arduino IDE instalado
- 🪴 Una maceta con tierra (para probar)

🔎 CONOCIENDO EL SENSOR
La mayoría de sensores de humedad del suelo tienen 4 pines:
- VCC → Alimentación (5V)
- GND → Tierra
- A0 → Salida analógica
- D0 → Salida digital (NO la usaremos en este proyecto básico)
Nosotros usaremos la salida analógica (A0) para obtener valores más precisos.
🔌 MONTAJE DEL CIRCUITO (PASO A PASO)
Paso 1: Alimentación
- Conecta VCC del sensor → 5V del Arduino MEGA
- Conecta GND del sensor → GND del Arduino MEGA
Paso 2: Señal
- Conecta A0 del sensor → Pin A0 del Arduino MEGA
⚠️ Importante:
El Arduino Mega tiene muchos pines analógicos (A0–A15). Nosotros usaremos A0.
🧠 ESQUEMA SIMPLE DE CONEXIÓN
Sensor Arduino MEGA
------- -------------
VCC -----> 5V
GND -----> GND
A0 -----> A0
¡Y listo! 🎉 El hardware está terminado.
💻 CÓDIGO PARA ARDUINO IDE
Copia y pega esto en el Arduino IDE:
// Definimos el pin del sensor
const int sensorPin = A0;// Variable para almacenar el valor leído
int humedad = 0;void setup() {
// Iniciamos la comunicación serie
Serial.begin(9600);
}void loop() {
// Leemos el valor analógico del sensor
humedad = analogRead(sensorPin); // Mostramos el valor en el monitor serie
Serial.print("Nivel de humedad: ");
Serial.println(humedad); // Esperamos 1 segundo antes de la siguiente lectura
delay(1000);
}
🧩 EXPLICACIÓN DETALLADA DEL CÓDIGO
Vamos línea por línea como verdaderos expertos 👇
1️⃣ Definición del pin
const int sensorPin = A0;
const→ significa que no cambiará.int→ es una variable entera.A0→ es el pin analógico donde conectamos el sensor.
2️⃣ Variable para guardar el dato
int humedad = 0;
Aquí guardaremos el valor leído del sensor.
3️⃣ Función setup()
void setup() {
Serial.begin(9600);
}
Serial.begin(9600);inicia la comunicación entre Arduino y el ordenador.- 9600 es la velocidad de comunicación (baudios).
Se ejecuta una sola vez al encender la placa.
4️⃣ Función loop()
void loop() {
Se ejecuta en bucle infinito mientras el Arduino esté encendido.
5️⃣ Lectura del sensor
humedad = analogRead(sensorPin);
analogRead()lee valores analógicos.- Devuelve un número entre 0 y 1023.
En sensores típicos:
- Tierra muy mojada → valores bajos (~300–500)
- Tierra seca → valores altos (~700–1023)
6️⃣ Mostrar el valor
Serial.print("Nivel de humedad: ");
Serial.println(humedad);
Esto muestra el valor en el Monitor Serie.
7️⃣ Pausa
delay(1000);
Espera 1000 milisegundos (1 segundo) antes de repetir.
📊 ¿CÓMO INTERPRETAR LOS VALORES?
Los valores van de:
- 0 → 1023
Podemos hacer una equivalencia aproximada:
| Valor | Estado del suelo |
|---|---|
| 0–400 | Muy húmedo 💧 |
| 400–700 | Húmedo 🌱 |
| 700–1023 | Seco ☀️ |
(Estos valores pueden variar según el sensor)
🚀 MEJORA OPCIONAL (Convertir a porcentaje)
Si quieres que muestre porcentaje:
Reemplaza dentro del loop:
int porcentaje = map(humedad, 1023, 0, 0, 100);Serial.print("Humedad: ");
Serial.print(porcentaje);
Serial.println("%");
La función map() convierte el rango 0–1023 en 0–100%.
🧠 CONCEPTO IMPORTANTE DE ROBÓTICA
Este proyecto usa:
- Entrada analógica
- Adquisición de datos
- Comunicación serie
Es la base de:
- Sistemas de riego automático
- Agricultura inteligente
- Domótica
- IoT
🎓 RESUMEN FINAL
✔ Conectamos VCC, GND y A0
✔ Leemos datos con analogRead()
✔ Mostramos resultados por puerto serie
✔ Interpretamos valores
Etiqueta:4eso, AIDARAC, arduino, c++, programación, ROBÓTICA, tecnología
