Powering and Reading an Open Collector Flow Sensor.

I’ve been asking questions trying to come up with the best way to read low pressure water flow in a 4" pipe.

I’ve settled on and installed a GF signet 2536 which is an open collector type sensor.

GF Signet states:

-The output signal shall be an open-collector transistor (sinking) pulse.

-Sensor shall operate with a power input of 3.3 - 24 vdc, with a maximum current draw of < 20 mA.

-Sensor shall operate with a supply current of <1.5 mA @ 3.3 - 6 vdc.

-Sensor shall output a maximum of 10 mA.

-Sensor shall output 13.456 pulses per US Gallon when place in 4" sch 40 pipe utilizing a 4" sch 80 saddle.

-Sensor may require a 10k Ohm pull-up resistor when utilizing non-Signet brand devices.

Is it safe to power and read this with an Arduino?

Safe? Probably.

Will it work? No idea as there are lots of additional questions. Things like distance between sensor and Arduino, actual flow rate which determines the output frequency from the sensor and of course the fact that you didn’t link to a actual device spec sheet or mention which model of Arduino...

Sorry about that. I thought I had included all pertinent information.

-GF Signet 2536 Rotor-X Flow Sensor.

-Distance to sensor is about 5 feet.

-Flow rate is between 100gpm and 350gpm.

-Model of Arduino doesn't matter to me for this. Whichever will best handle my intentions. (I also intend to have the Arduino sense the open and closed limit switches on an automated valve and light an LED for open and one for closed.) I did a similar build for reading a 4-20mA flowmeter signal and a 0-5v pressure sensor and I used a Mega for that one.

Is it safe to power and read this with an Arduino?

Fro the specs you quote, definitely safe, using any Arduino.

Read the open collector output with a digital pin declared INPUT_PULLUP.

The reason for the open collector output is so you can power the sensor from a voltage that is different from the input voltage that the controller can withstand.

So with a 5V Arduino, a pullup resistor between the sensor output and the Arduino 5V, you should be okay with a 1k pullup resistor, this will mean you are sinking.

5V / 1000R = 0.005A = 5mA from the output.
Which is within specs. (10mA)

I suggest 1k as a pullup to help keep any interference/noise that may be picked up in the 5m of cable to a minimum.
Tom… :slight_smile:

Today at 02:00 am Last Edit: Today at 02:00 am by Wellarmedlamb
Thank you for helping get me started! If you can’t tell I’m fumbling around in the dark.

The instructions dictate 10K Ohms pull-up resistor. Could you help me understand why this isn’t important and a 1k Ohm resistor is fine? Just trying to wrap my head around this stuff before I physically get started.

I am slightly confused as to the use of the Arduino 5v but not as a power supply. In the diagram supplied by GF Signet the resistor is connected between (+ Sensor Supply) and (Sensor Output).

In your diagram you do not have (+Sensor Supply) connected to the Arduino 5v so I assume I need to have a separate power source?

Below is the supplied generic wiring schematic from GF Signet.

Initially, while I understand that I don’t have to power the sensor from the Arduino, can I?

GFS 2536 Other Brands Wiring.PNG

Yes, you can power the sensor from the Arduino 5V output.

The output pullup resistor value is not particularly important from the sensor point of view, as long as the maximum allowed output (sink, actually) current of 10 mA is not exceeded.

However, noise considerations and the impedance of a long connecting cable suggest that a low value, like 1K, could be needed.

That is an advanced topic and if problems arise, they are often solved by lowering the resistor value. You can start with INPUT_PULLUP (30K - 50K internal resistor) for testing purposes, as it simplifies the connections.