Sensores de Flujo de Agua: Funcionamiento, Tipos y Uso con Arduino
Los sensores de flujo de agua miden caudal volumétrico (L/min) y volumen total. Son esenciales en gestión de agua, riego automático, dispensadores, cafeteras, calentadores instantáneos y monitorización industrial. Esta guía cubre principios de funcionamiento, tipos principales, especificaciones del sensor YF-S201 (efecto Hall + turbina) e integración con Arduino.
¿Qué es un Sensor de Flujo de Agua?
Dispositivo que detecta el paso de líquido y genera una señal proporcional al caudal. Los más comunes en hobby/industria ligera usan una turbina (rotor) con imán y un sensor de efecto Hall que emite pulsos por cada vuelta.
Principio de Funcionamiento (YF-S201 / Turbina + Hall)
- El agua entra por una entrada roscada (G1/2" típica) e incide sobre la turbina.
- La turbina gira a velocidad proporcional al caudal.
- Un imán en la turbina pasa frente al sensor Hall, generando un pulso por vuelta.
- La frecuencia de pulsos (Hz) es proporcional al caudal (L/min).
- Fórmula típica: Caudal (L/min) = Frecuencia (Hz) / Factor K (K ≈ 7.5 para YF-S201, ver datasheet).
La salida es onda cuadrada (TTL 0–5 V), compatible con pines de interrupción de microcontroladores.
Tipos Principales de Sensores de Flujo
1. Turbina / Rueda de Paletas (Paddlewheel)
- Principio: Rotor perpendicular al flujo (paddlewheel) o axial (turbina).
- Ventajas: Bajo coste, simple, buena linealidad en rango medio.
- Limitaciones: Sensible a partículas, burbujas, viscosidad; desgaste mecánico; requiere tramo recto upstream/downstream.
- Uso: Agua limpia, riego, electrodomésticos, YF-S201, G1/2, G3/4.
2. Desplazamiento Positivo (Positive Displacement - PD)
- Principio: Cámaras de volumen fijo que se llenan y vacían cíclicamente (engranajes, pistones, diafragmas).
- Ventajas: Alta precisión (±0.1–0.5 %), mide volumen directo, funciona con viscosos, sin tramo recto.
- Limitaciones: Costoso, mayor caída presión, piezas móviles, no apto para agua sucia/abrasiva.
- Uso: Dosificación química, combustible, aceite, leche, farmacéutica.
3. Electromagnético (Magmeter)
- Principio: Ley de Faraday: fluido conductor + campo magnético → voltaje inducido ∝ velocidad.
- Ventajas: Sin partes móviles, bidireccional, sin caída presión, apto lodos/aguas residuales.
- Limitaciones: Solo fluidos conductores (≥5 μS/cm), no agua ultra-pura/desionizada, coste alto, requiere alimentación.
- Uso: Aguas residuales, pulpas, industria química, riego con fertilizantes.
4. Ultrasónico (Transit-Time / Doppler)
- Principio: Diferencia tiempo de vuelo (transit-time) o shift Doppler de señal ultrasónica.
- Ventajas: No invasivo (pinza externa), sin partes móviles, bidireccional, cualquier líquido (transit-time) o con particulas/burbujas (Doppler).
- Limitaciones: Costoso, sensible a burbujas (transit-time), requiere tubo lleno, instalación cuidada.
- Uso: Tuberías grandes, temporal, higiénico, aguas sucias (Doppler).
Especificaciones YF-S201 (Referencia Común)
| Parámetro | Valor |
|---|---|
| Tensión de trabajo | 4.5 – 24 Vcc (típ. 5–18 V) |
| Corriente máxima | 15 mA @ 5 V |
| Caudal nominal | 1 – 30 L/min |
| Factor K (pulsos/L) | ∼450 pulsos/L (7.5 Hz per L/min) |
| Precisión | ±3 % (rango medio), ±10 % (extremos) |
| Presión máx. trabajo | 1.75 MPa (∼17.5 bar) |
| Temp. fluido / ambiente | < 80 °C / < 120 °C |
| Humedad | 35–90 % HR |
| Rosca | G1/2" (DN15) hembra |
| Material cuerpo | Latón niquelado / PA66 + fibra vidrio |
| Salida | Onda cuadrada 0–5 V (open collector + pull-up interno) |
Integración con Arduino (YF-S201)
Conexión
- Rojo (VCC) → 5 V Arduino
- Negro (GND) → GND Arduino
- Amarillo (OUT) → Pin digital 2 (interrupción INT0) o 3 (INT1)
Código Arduino (Interrupción + Cálculo Caudal)
const uint8_t FLOW_PIN = 2; // Pin interrupción (INT0)
const float K_FACTOR = 7.5; // Pulsos por L/min (ver datasheet)
volatile uint32_t pulseCount = 0;
uint32_t lastMillis = 0;
float flowRate = 0; // L/min
float totalVolume = 0; // Litros
void IRAM_ATTR countPulse() { // ISR: rápido, mínimo código
pulseCount++;
}
void setup() {
Serial.begin(115200);
pinMode(FLOW_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(FLOW_PIN), countPulse, FALLING);
}
void loop() {
uint32_t now = millis();
if (now - lastMillis >= 1000) { // Actualizar cada 1 s
detachInterrupt(digitalPinToInterrupt(FLOW_PIN));
uint32_t pulses = pulseCount;
pulseCount = 0;
attachInterrupt(digitalPinToInterrupt(FLOW_PIN), countPulse, FALLING);
flowRate = pulses / K_FACTOR; // L/min
totalVolume += flowRate / 60.0; // L acumulados
Serial.printf("Caudal: %.2f L/min | Total: %.3f L\n", flowRate, totalVolume);
lastMillis = now;
}
}
Visualización en LCD 16×2 (I2C)
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); lcd.backlight();
// ... setup sensor ...
}
void loop() {
// ... cálculo caudal ...
lcd.setCursor(0,0); lcd.printf("Caudal: %.1f L/min", flowRate);
lcd.setCursor(0,1); lcd.printf("Total: %.2f L ", totalVolume);
delay(1000);
}
Buenas Prácticas y Solución de Problemas
- Filtro de rebote: Si hay vibraciones, añade condensador 10–100 nF en pin OUT o filtro software (ignorar pulsos < 1 ms).
- Burbujas de aire: Causan lecturas erráticas. Instala purga aire o válvula de pie.
- Montaje: Horizontal, con tramo recto ≥10×Diámetro antes y ≥5×Diámetro después. Flecha en cuerpo indica sentido flujo.
- Calibración: Verifica K-factor real con cubeta graduada y cronómetro. Ajusta en código.
- Alimentación: 5 V estable. Evita compartir GND con cargas ruidosas (motores, relés).
- Limpieza: Periódica si agua dura (cal) o partículas.
Conclusión
El YF-S201 (turbina + Hall) es la opción costo-efectiva estándar para agua limpia en proyectos Arduino/ESP32. Para precisión, fluidos sucios, viscosos o industriales, evalúa desplazamiento positivo, electromagnético o ultrasónico. La clave es contar pulsos con interrupción y calibrar el factor K.
¿Dudas en tu implementación? Contáctanos para revisión de código o selección de sensor.
Tecnología Industrial
- Curva P-F explicada: dominando el mantenimiento centrado en fiabilidad
- Bombas de Recirculación de Agua Caliente Doméstica: Qué Son y Cómo Elegir la Adecuada
- Explorando 6G: El Futuro de la Conectividad Ultra-Rápida
- Brasado de cobre explicado: Técnicas y consejos para uniones fuertes y fiables
- MQTT en Automatización Industrial: Guía Práctica para Fabricantes
- Microcontroladores PIC18: Características, Rendimiento y Cómo Usarlos
- Entendiendo Designadores de Referencia: Cómo Etiquetar Conexiones en Ensamblaje PCB
- Cómo Elegir el Compactador Adecuado: Guía Completa para una Gestión Eficiente de Residuos
- Sensores de Flujo de Agua: Funcionamiento y Aplicaciones Principales
- Elegir la Plataforma IoT Correcta: Guía Práctica para Product Managers
- Dominando Queues en C#: Enqueue, Dequeue y Operaciones Primero-En-Entrar-Primero-En-Salir Explicadas