Reading pulses off of power/ground pins

Hi. I have some extremely basic knowledge of digital design. I'm used to just putting things together that have a SPI or I2c bus, or copying circuits I find online. But I haven't made any original circuits yet.

I'd like to create a flow meter converter. Most residential sprinkler irrigation flow meters output in .1/1/10 pulses per gallon. Some report using 'K and Offset' numbers.

I'd like to create a universal flow-meter converter. Basically, I plug this converter into the flow meter on one side, and into the sprinkler controller on the other side.

This will allow me to converting arbitrary pulses per gallon into a different pulses per gallon rate and send it back to the controller.

Here some flow meters:
(New user can't have more than 2 links in post, so dropping the .com above)

The problems I see right off the bat is that these flow meters only have 2 wires, positive and negative. Additionally, they want something like 36V DC.

So, I'd love to have some help into how to go about creating this circuit.

Problem 1:
Since there are only two wires, I imagine that the pulses must travel on the red wire. How could you safely provide 36V DC and READ the signal from the red wire?

Problem 2:
Ideally, I'd like to just plug my circuit into the existing controller for

  1. Power for arduino
  2. The arduino should send back a (different) signal back to the controller, after adjusting its rate.

Eventually, it would be cool to be able to combine (add) multiple flow meters into one, but I don't have this use case right now.

Heres the specs of the Everydrop flow meter

I imagine I'm going to need resisters and capacitors. Also, I would really like to understand the circuit so I can learn from it and for my next project. Thanks a lot!

Do you have a beginning schematic showing what you want to do?

You don't. Connect the sensor like any manual switch with a pullup resistor and use the Debounce or StateChangeDetection example for detecting pulses. See BlinkWithoutDelay for creation of a time base for reporting gallons per minute or whatever you like.

P.S.: the Everydrop flow meter requires a higher operating voltage, 9V at least. Interface requires a source resistor (see table) and a voltage divider or optocoupler to scale the pulse peak voltage down to the controller Vcc.

I don't believe forum members are likely to dig through all the flow meters you listed and figure out what you need.
As a minimum you need to go through all the flowmeters and glean the information needed for connection. Even if you are not sure how they work.

For instance, I would GUESS the two wire requiring 36V is a 4-20ma device. Likely analog. But we don't have enough information to know what it really is.

Here's what I got from the datasheet for the Everydrop flow meter. They give some examples about how to drive the circuit. I'm not exactly sure what Vsource and Rsource mean. If I wanted to hook up this circuit to both supply 36V and read the pulses, how would that work? Do I need a voltage divider or buck converter?

The spec also shows how to just power the meter.

They reference the circuit. Your statement above suggests you did not study the info you posted. Not a good start.

To accomplish your goal you will have to slow down and learn how each sensor and circuit works. Else you are spinning your wheels.


Thanks - I'm trying to learn as I go. Where should I start for this circuit? In the examples there I see there is an op-amp in one, and a optocoupler in the other. Are there pros/cons to which circuit I use?

The optocoupler approach is safe because it will electrically separate the sensor from the Arduino. The transistor can be connected like a manual switch as I outlined before (#3).

As stated by @DrDiettrich the opto coupler is good to isolate your converter from the source. This could be needed if the power of the sensor is provided from a power source that is not possible to be connected to your Arduino circuit. For instance the power source might be from a different building and it would be unwise to connect its ground to your Arduino.

The opamp (actually a comparator) simply switches the output at a specific voltage. This insures the Arduino digital input is not given a voltage that is not 1 nor 0 but in between.

Thanks - I'm trying to learn as I go. Where should I start for this circuit?

I think you need to read the specifications again and understand the meaning of each line of the specification. You need to do the same with the Arduino. That is the place to start. I realize it is not as fun as "diving in" but sometime when you "dive in" you never break surface again.

I don't think that this is the way to go. That specific Everydrop data sh*t contains more omissions than information. I'd postpone such cryptic sensors until the software is ready for simpler sensors. Finally a dedicated interface circuit has to be added for each supported sensor type, one by one with possibly open end.

So, I tried to create the circuit in a simulator to understand more about how it would work.

Theres a BIG IF. If you say that the flow meter is like any old switch (I added a momentary switch to the simulation) when the button is pushed, it will send 1.291V (LOW), when open it will send 4.346V (HIGH).

Then it's just a matter of software counting the high/lows.

I'm going to do more experimentation in the simulator, but it seems like a lot of the resistors on the Vcc path are not needed?

Such a simulation is crap. Comparators for signal levels outside their Vcc are very rare, if ever found. This means that Vsource can not exceed Vcc, what is not true for the Everydrop sensor.

Your circuit is designed for a small input voltage change (some mV) and the resistors allow to determine the trigger level and hysteresis as required. It would become more complicated if it were powered by Vsource (for acceptable input voltage level) and should provide a logic level output signal (0-5V).