Input conditioning for water meter reed switch

My project includes measuring water flow through a typical utility meter - with rotating dial-pointers.
The low range pointer has a magnet fixed to it, which sweeps past a reed-switch every revolution. The reed switch operates for nearly half of the pointer/magnet rotation, so pulse:period is about 40% regardless of rate.

The pulse rate is highly variable - but never very fast. At minimum flow rate I expect 1 pulse per 30sec, while at maximum flow about 1.7Hz (1 pulse per 600mssec) down to 1 pulse per 30sec at minimum meter flow. There are also long periods of zero flow - and the magnet may be parked so the reed switch is either on or off at zero flow.

There are a few challenges with this input:

  • The pulse-rate is highly variable: at highest flows it is a little too fast for regular UI/digital input - although slower speeds are fine Low flows are too slow for both low-speed (1Hz) and high-speed (100Hz) pulse input (I dont get any useful results with either pulse-input range setting.)
  • the reed switch exhibits significant contact bounce - both closing and opening
  • The magnet-parking at zero flow can cause unusual switch operations.

I just want to count meter pulses into an accumulator as they arrive, but I need to ignore contact bounce and all periods of zero flow.

Question 1: what is likely to be the best input setting for this?
Question 2: Can I use the Input/Filter setting overcome contact bounce? How?

BTW the reed switch works well when connected to a simple electro-magnetic counter.

I would appreciate any assistance.

I would use the IF+ statement, that is fast enough for any short spike but also slow enough that you should not get contact bounce. Set the input to ON-OFF, give it a try and report back please.

Refer to my earlier email. I am testing using a momentary switch and also reed-switch/magnet.
I have set switch inputs to ON-OFF (and OFF-ON also)

IF+ does not seem to recognise switch closures of less than about 1 sec.


Momentary Contacts: Liang will do some testing and report back. I know we went through a momentary contact application for a client doing lighting. The pulses were short and the lights toggled with each hit of the button.

Reed Switch: Just make sure you’re using a late model controller, five years old or less say. Make sure you’re wired to a high speed input. If you get contact bounce you could try experimenting with the ‘filter’ setting. Here’s a link showing which inputs support high speed pulse counters on the various controllers.