Tachometer for grape harvester

I am chasing some help in the best way to build a tachometer for my grape harvester. I have 8 different moving parts that I need to know the RPM for. I was thinking of installing hall effect switches on all motors and converting them all to RPM. On two of these it would be good to trigger an alarm if the RPM is zero either audible or an LED or both.

I was thinking maybe a Raspberry Pi but there sounds like there might be easier solutions with a Pico.

My power supply is going to be 12 volts via the battery on the harvester.

I also need to know ground speed usually in the range of 2 to 5 KM/hr. I was thinking of converting the revolutions of a tyre to speed. I know the distance travelled by one complete revolution of the tyre and by possibly fitting 4 magnets to the wheel we would get a more accurate RPM due to the low revolutions if only one magnet, then converting to speed.

On top of this I would like to read oil pressure and engine temperature. These I think would require a sensor that outputs either voltage or current.

I am not fused if its all on one screen or if each is on its own screen with an alarm LED for zero RPM on two.

Any help or feedback would be great. I have some limited programming knowledge and fairly extensive electronic knowledge.


Hi Peter
A lot of inputs to monitor at the same time. Could be a bit beyond the hobby realm but maybe some of the digital Gurus might like to chip in and have some ideas.
Cheers Bob

1 Like

Bob, I am thinking of it might need to be a series of multiple units. So if I could build a tachometer with a screen I could replicate that and house it all in a case.

I guess what I need is to know what I need to build one unit and then see how I can expand it from there

1 Like

Hi Peter
you could use hall or other sensors to generate pulses. Then possibly use the Arduino “pulseIn” to measure the duration of the high and low times, add these together to get the total duration then calculate the rotational speed. Basic but just might work. You will have to use the “timeout” part so the thing does not sit and wait all day for a pulse. Description of all this in the Arduino Reference here

Cheers Bob

1 Like

Welcome to the forum Peter!

Bob’s got you off to a great start.

Typically RPM or rotational distance is measured with an encoder, these come in optical and magnetic forms.
For this project a Pico would be perfect, no need for an operating system and more usable IO.

And there are 3 ADC lines available, for other analog sensors (limited to 3.3V though you can step down the voltage).

Picking a couple of parts up to start would be perfect to familiarise yourself with the setup and here’s a tutorial to get started: https://www.youtube.com/watch?v=3fAFNwA-aEY&ab_channel=Print’NPlay

There are a ton of screens available on the Core website (for both the Pico and other devices).


The only rotary encoders that Core stocks which would handle continuous mechanical rotation for long periods are very high precision and corresponding high price. They are much more than is needed for reporting RPM. A simple magnetic or optical sensor that ticks once per revolution will indicate RPM while putting a much lower processing load on the MCU, so that multiple sensors could be monitored from one device. Also, a magnetic or optical sensor has no moving parts - an important feature for maintenance.

An optical sensor might be suitable where it could be sealed so it would not be contaminated by debris. It would require an installation that either interrupted or reflected a beam of light. An optical reflector has the advantage of requiring wiring to one point only, but might be difficult to keep clean.

A magnetic sensor is less likely to suffer from fouling, but requires that a magnet is attached to the rotating part.

Examples are:

Note that the reed switch has a switching time that will limit the maximum RPM that it can measure. A Hall effect device could measure to a much higher speed.

An example project is here. There are many others, using various techniques.
Arduino Tutorial: Tachometer (RPM Counter) - YouTube

Hi Peter.
Do you need to know actual RPM or just if the rotating bits are going around.

If you just need to sense rotation that would be easy with some 555’s. Just arrange the sensor to take pin 2 to ground and keep resetting the timer. When rotation stops the 555 times out and activates some alarm or other indication. The time out period would be set to accommodate the expected rotation speed.

Oil pressure and temperature are a different matter but if you run into too much trouble Repco, Supercheap or other auto accessory retailer could help I am sure.

But all this is not as much fun as using RPi or Arduino or similar I know. Just a belt and braces alternative.
Cheers Bob

1 Like

I am going to attempt the project with hall effects switches which should give me the result I think I and looking for. Decided on using a Raspberry Pi so we will see how it goes