Ir al contenido

← Todas las funcionalidades

Piso móvil hidráulico (app BLE)ESP32 PLC 38RGPIOAdquisición

Medir caudal hidráulico con un sensor de pulsos en un PLC ESP32 industrial

Un caudalímetro de turbina con captador magnético o inductivo es la forma más barata de saber cuánto aceite se mueve realmente por un circuito hidráulico. Este ejemplo de caudalímetro con PLC ESP32, extraído de un despliegue real en una máquina hidráulica móvil, cronometra cada pulso con una interrupción, convierte el periodo a litros por minuto usando el factor K del medidor y acumula el volumen total — todo en un ESP32 PLC 38R, sin ningún convertidor de señal adicional de por medio.

Cronometrar con interrupciones gana a contar pulsos

Contar pulsos en una ventana fija da una lectura lenta y cuantizada a caudal bajo. En su lugar, la ISR guarda 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

Caudal cero y un caudalímetro desconectado son indistinguibles si solo cuentas pulsos, y en una máquina que vibra por carretera cada día los conectores acaban aflojándose. El ejemplo lee una señal de presencia separada y aplica un timeout sin pulsos, de modo que el firmware distingue "máquina parada" de "sensor desenchufado" y reporta cada caso por separado — el mismo patrón de flag de validez usado con los transmisores 4-20 mA en otros artículos de esta serie.

De pulsos a litros, de forma persistente

Dividir el recuento de pulsos acumulado por el factor K da el volumen total, que en la máquina real alimenta un contador de consumo de aceite guardado en la flash NVS para que sobreviva a reinicios y cortes de alimentación. La telemetría sale del PLC una vez por segundo como una trama compacta [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.

Funcionalidades relacionadas