pulse or frequency for rate

What is the most simple way to measure rate from 0 to 10 K Hz. This would be used in getting a pulse train from instrumentation or magnetic pickups. I would like it to work with low voltage pulses but should be able to handle 24 volt pulses as well.

The counts would be used to determine rate as in flow or rpm and need to be able to determine zero rate. I was looking at an LM2907-N. I wish I could find something that could work with a single 5 volt supply. I am guessing that this would be the best course to take and power it from the power supply running my arduino then read the voltage with something like an ADS1115.

Am I headed in the right direction?

Am I headed in the right direction?

Well I would say not. A frequency to voltage conversion then needs to be followed by an analogue to digital conversion, both costly, time intensive and inaccurate.

A lot depends on the application which you haven't mentioned yet, but in my mind you can't beat a hardware counter for a gated time period. You can save money by doing it in software on the Arduino if you can spare the time. Only time individual pulses if you need rapid results.

This would be use in making modules for data acquisition like rate of chemicals being added, liquid with pumps of powder with augers or commercial transmitters that have pulses configured as outputs.

I already have designed 4-20 ma input and output modules, and plan on having counter modules and PWM output modules. Up to as many as 120 modules on my RS-485 bus. The application will could be in an industrial setting or in a mobile applications. The need being is for control and measurement for service and manufacturing, reading and controlling pressure and rate.

The problem I see in just counting with a pin is when the rate is near zero condition using a PID loop.

This completed project will be monitoring operations sending the results back to a front end system via RS-485 polling the information at 1000 millisecond intervals with the possibility of 250 millisecond intervals.

So far, what I have designed beats the specifications of the instruments that it will be receiving data.

The problem I see in just counting with a pin is when the rate is near zero condition using a PID loop.

Well at least counting for a fixed time will not hang anything where as measuring the pulse period could hang.

Up to as many as 120 modules on my RS-485 bus.

In my experience RS485 while having a fast baud rate is not too quick in sending data because you tend to put it in robust packages. That is a lot of stuff to talk to.

So far, what I have designed beats the specifications of the instruments that it will be receiving data.

The trick is to design the system as a whole, not just have fast bits.

0 Hz is hard to measure for a digital signal. It's essentially a signal that started out as either 0 or 1, at the big bang, and remains that way until the entropic heat death of the universe. If it changed tomorrow and never again, you could say the frequency is 1/(T(heatdeath) - T(big bang)). ;) What I'm implying is that in practice you have to define an arbitrary limit. For example, a time out.

All modules will listen until they get their address, then respond according to the following commands.

Maximum 194 bytes returned per modules with a maximum of 6 bytes on a command to an individual module.

2.5 Mbps maximum transmission speed using a MAX1487. Will use a much lower speed for distance.

Only modules reporting information will be regularly transmitting.

The USB port will be for locally configuring a module. Each module will be reporting back to the front end package. Much more robust than the man watching.

Zero rate is why I think that a charge pump measuring voltage will be the better answer.

Nasa: Zero rate is why I think that a charge pump measuring voltage will be the better answer.

How accurately do you need to measure the rate?

Nasa: Zero rate is why I think that a charge pump measuring voltage will be the better answer.

Well I would say your thinking is wrong, but then it is your project.

Was I too playful in my reply? Rate is measured over some time period anyway. If the (arbitrary) time period expires, the rate can be considered zero. As soon as pulses come in, they could be measured with relative ease by the processor, which has built in hardware facilities to enable time measurements to the microsecond. Thus with virtually no hardware and simple software, you could make your measurement very conveniently. Isn't that sort of thing the reason for using an Arduino in the first place?

So how would I compensate for irregular pulses like a jerking drive line or erratic pump of if they were clocking off of bolt patterns on a turning shaft. Maybe averaging over so many samples?