Sensor de Flujo de Agua

El sensor de flujo de agua está compuesto por un cuerpo de cobre, un rotor interno y un sensor de efecto Hall.
Cuando el agua pasa por el rotor, este gira; su velocidad varía según el caudal.
El sensor de efecto Hall emite una señal de pulsos correspondiente.
Este modelo es ideal para dispensadores de agua o cafeteras.
Lo más importante es que su cuerpo de cobre ofrece mayor durabilidad que uno de plástico.
Características
- Compacto y fácil de instalar
- Excelente rendimiento de sellado
- Sensor de efecto Hall de alta calidad
- Cumple con RoHS
Especificaciones
Parámetro | Valor |
---|---|
Dimensiones | 0mm × 0mm × 0mm |
Peso | 79 g |
Batería | No incluida |
Voltaje mínimo de operación | DC 4.5 V |
Corriente máx. de trabajo | 15 mA (DC 5 V) |
Voltaje de trabajo | DC 5 V ~ 15 V |
Dimensiones de interfaz | G1/2 pulgada |
Rango de caudal | 1 ~ 25 L/min |
Frecuencia | F = 11 × Q (Q = L/min) ±3 % |
Margen de error | (1 ~ 30 L/min) ±3 % |
Capacidad de carga | ≤10 mA (DC 5 V) |
Temperatura de operación | 0 ~ 80 ℃ |
Temperatura del líquido | ≤120 ℃ |
Humedad de operación | 35 % ~ 90 % RH |
Presión de agua | ≤1.75 MPa |
Material | Cobre H57 + POM |
Temperatura de almacenamiento | -25 ~ +80 ℃ |
Humedad de almacenamiento | 25 % ~ 95 % RH |
Nivel alto de salida de pulso | > DC 4.7 V (entrada 5 V) |
Nivel bajo de salida de pulso | < DC 0.5 V (entrada 5 V) |
Ciclo útil de pulso | 50 % ±10 % |
¿Qué es un sensor de flujo de agua?
Un sensor de flujo de agua mide el caudal, es decir, el volumen de agua que pasa por unidad de tiempo.
Se utiliza comúnmente en calentadores de agua automáticos, máquinas expendedoras de agua o cafeteras DIY.
Para proyectos con Arduino o Raspberry Pi, los más usados son sensores de flujo basados en dispositivo Hall, como los clásicos modelos YF-S402 y YF-S201.
¿Cómo funciona el sensor de flujo de agua?


El sensor contiene un sensor Hall, una rueda de turbina y un imán.
Cuando el agua entra por la entrada, empuja la rueda que empieza a girar.
El imán girando genera un campo magnético variable que es detectado por el sensor Hall, generando pulsos digitales (cuadrados).

Cada vuelta de la rueda representa un volumen fijo de agua, y un número determinado de pulsos.
Por tanto, contando pulsos podemos calcular el caudal de agua.
Plataformas Compatible
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
Primeros Pasos
Materiales requeridos
Seeeduino | Grove Base Shield | Sensor de flujo de agua |
---|---|---|
![]() | ![]() | ![]() |
Consigue uno ahora | Consigue uno ahora | Consigue uno ahora |
Conexión del Hardware
Para los sensores de la serie YF, hay tres cables:
- Rojo: Vcc
- Negro: GND
- Amarillo: salida de pulsos
Para placas basadas en Atmega 328 como Seeeduino V4.2, se pueden usar dos pines digitales como interrupciones:
- Pin digital 2 →
interrupt 0
- Pin digital 3 →
interrupt 1
En este caso, usamos el pin D2 para detectar los pulsos del sensor de flujo de agua.
Si usas Seeeduino junto con el Grove Base Shield, simplemente conecta el sensor al puerto D2.
Si estás usando otra placa Arduino, usa cables jumper para conectar correctamente.

Conecta con cuidado el cable USB y el sensor de flujo a la placa Seeeduino para evitar dañar los puertos.
Programación
Aunque puedes usar digitalRead()
dentro del bucle loop()
para leer la señal de salida del sensor, esta forma no es en tiempo real.
Cada ejecución requiere cierto tiempo de espera durante el cual se pueden perder pulsos.
Para aplicaciones donde se requiere detección en tiempo real, se recomienda usar interrupciones.
Cada vez que se detecta un flanco ascendente del pulso, se activa la interrupción y se incrementa un contador.

Consulta más detalles sobre interrupciones en attachInterrupt.
Si es tu primera vez con Arduino, te recomendamos revisar esta guía: Primeros pasos con Arduino before the start.
-
Paso 1. Conecta el sensor de flujo de agua al Grove Base Shield, y este a la placa Seeeduino. Luego conecta la placa a tu computadora mediante cable USB.
-
Paso 2. Abre el IDE de Arduino, copia el siguiente código y súbelo a la placa.
Este código funciona con los sensores más comunes como YF-S201, YF-S402 y otros disponibles en Seeed Studio.
Código
/*
YF‐ S201 Water Flow Sensor
Water Flow Sensor output processed to read in litres/hour
Adaptation Courtesy: www.hobbytronics.co.uk
*/
volatile int flow_frequency; // Measures flow sensor pulsesunsigned
int l_hour; // Calculated litres/hour
unsigned char flowsensor = 2; // Sensor Input
unsigned long currentTime;
unsigned long cloopTime;
void flow () // Interrupt function
{
flow_frequency++;
}
void setup()
{
pinMode(flowsensor, INPUT);
digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
Serial.begin(9600);
attachInterrupt(0, flow, RISING); // Setup Interrupt
sei(); // Enable interrupts
currentTime = millis();
cloopTime = currentTime;
}
void loop ()
{
currentTime = millis();// Every second, calculate and print litres/hour
if(currentTime >= (cloopTime + 1000))
{
cloopTime = currentTime; // Updates cloopTime
// Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
flow_frequency = 0; // Reset Counter
Serial.print(l_hour, DEC); // Print litres/hour
Serial.println(" L/hour");
}
}
Si todo está correctamente conectado, abre el monitor serial y ajusta la velocidad de baudios a 9600.
Cuando el agua comience a fluir, el valor de caudal se imprimirá en la ventana correspondiente.
Fórmula para el cálculo del sensor de flujo de agua
En la sección de código usamos una fórmula. ¿De dónde viene?
l_hour = (flow_frequency * 60 / 7.5)
Como se explicó antes, por cada vuelta de la rueda interna, fluye un volumen determinado de agua, y se generan un número fijo de pulsos. Por ejemplo, en el caso del sensor YF-S201, por cada litro de agua, el sensor Hall genera 450 pulsos.
Para el modelo YF-S201, el sensor Hall genera 450 pulsos por cada litro de agua que fluye. Hagamos algunas cuentas:
- 450 pulsos = 1 litro
- 1 pulso = 1 / 450 litros Si tomamos el volumen total de líquido que pasa por el sensor en un tiempo determinado t (en segundos), como V_total (en litros), y el número total de pulsos detectados como N, entonces:
V_total(L) = N* 1/450(L)
Por otro lado, el volumen total de líquido también es igual al caudal (Q en L/s) multiplicado por el tiempo:
V_total(L) = Q(L/s)*t(s)
Igualando ambas ecuaciones:
N* 1/450 = Q(L/s)*t(s)
N/t = 450 * Q(L/s)
Ya que N / t es la frecuencia (f) de los pulsos:
f = 450*Q(L/s);
Q(L/s) = f/450;
Q(L/min) = f*60/450 = f/7.5
Q(L/hour) = f*60*60/450 = f*60 /7.5
Para el modelo YF-S402, el sensor genera 4380 pulsos por litro:
f = 4380*Q(L/s);
Q(L/s) = f/4380;
Q(L/min) = f*60/4380 = f/73
Q(L/hour) = f*60*60/4380 = f*60 /73
Sensores de flujo de agua disponibles en Seeed
Modelo | Diámetro (DN) | Voltaje de trabajo | Rango de caudal | Longitud | Tipo de rosca | Largo rosca | Material |
---|---|---|---|---|---|---|---|
YF-B1 | DN15 | 5V~15V(DC) | 1~25L/min | 44mm | Double Male | 10mm | Copper |
YF-B2 | DN15 | 5V~15V(DC) | 1~25L/min | 50mm | Male in Female out | 10mm | Copper |
YF-B3 | DN15 | 5V~15V(DC) | 1~25L/min | 66mm | Double Male | 18mm | Copper |
YF-B4 | DN15 | 5V~15V(DC) | 1~25L/min | 66mm | Male in Female out | 10mm | Copper |
YF-B5 | DN20 | 5V~15V(DC) | 1~30L/min | 50mm | Double Male | 10mm | Copper |
YF-B6 | DN20 | 5V~15V(DC) | 1~30L/min | 60mm | Double Male | 11mm | Copper |
YF-B7 | DN15 | 5V~15V(DC) | 1~25L/min | 66mm | Double Male | 10mm | Copper |
G1&2 | DN15 | 5V~24V(DC) | 1~30L/min | - | Double Male | - | Plastic |
G3&4 | DN20 | 5V~24V(DC) | 1~60L/min | - | Double Male | - | Plastic |
G1&2 | DN15 | 5V~24V(DC) | 1~30L/min | 60mm | Double Male | 13mm | Plastic |
G1&8 | - | 5V~24V(DC) | 0.3~6L/min | - | - | - | Plastic |
M11*1.25 | - | 5V~24V(DC) | 0.3~6L/min | - | - | - | Plastic |
Soporte Técnico y Discusión
Si tienes algún problema técnico, publícalo en nuestro foro.
¡Gracias por elegir nuestros productos! Estamos aquí para ayudarte y asegurarnos de que tu experiencia sea lo más fluida posible.