Medir caudal hidráulico con un sensor de pulsos en un PLC ESP32 industrial
Cronometrar con interrupciones gana a contar pulsos
micros() en cada flanco de subida y el loop calcula el caudal a partir del periodo entre los dos últimos pulsos. El resultado reacciona en un pulso en lugar de en un segundo, lo que importa cuando un operario está mirando un indicador en el teléfono mientras se abre una válvula.La detección de presencia caza un medidor ausente
De pulsos a litros, de forma persistente
[F]12.3 sobre el servicio BLE UART, lo que permite verificar la lectura con cualquier app genérica de terminal Bluetooth durante la puesta en marcha, mucho antes de instalar la app móvil de producción.Un fragmento de la implementación
Tal cual del ejemplo desplegado en el ESP32 PLC 38R — cópialo libremente:
void setup() {
Serial.begin(115200);
pinMode(PIN_PULSES, INPUT);
pinMode(PIN_PRESENCE, INPUT);
attachInterrupt(digitalPinToInterrupt(PIN_PULSES), pulseIsr, RISING);
Serial.println("Pulse flow meter ready (ESP32 PLC 38R)");
}El ejemplo completo es un programa entero — cabecera de conexionado, setup y bucle principal — listo para adaptar a tu aplicación.
Preguntas frecuentes
¿Cómo averiguo el factor K de mi caudalímetro?
Viene impreso en la hoja de datos como pulsos por litro. Si no lo conoces, haz pasar un volumen conocido por el medidor, lee el recuento de pulsos acumulado y divide. Calibrar contra un llenado real siempre merece la pena hacerlo una vez.
¿Por qué mi lectura es ruidosa a caudal muy bajo?
A caudal bajo el periodo entre pulsos es largo, así que cada nuevo pulso provoca un salto brusco. Promedia los últimos periodos o pasa a contar pulsos en una ventana más larga por debajo de un umbral.
¿Puedo usar un sensor de caudal de efecto Hall en lugar de uno inductivo?
Sí. Cualquier sensor que entregue pulsos digitales limpios funciona con el mismo código; solo cambian el factor K y el cableado de la entrada. Comprueba que la tensión de salida del sensor coincide con el rango de la entrada digital del PLC.