Introduction: RPM Meter on Arduino Uno

About: I am student of University interested in Arduino, ESP related IoT stuff.

Arduino is a platform of omnipotence. It allows to create simple flashers, but also complex systems for more advanced automation. Thanks to the different buses, the Arduino can also be expanded to include different peripherals. Today we will take a closer look at the obstacle infrared sensor and its use for the tachometer. The sensor principle is very simple. It contains 2 diodes, emitting and receiving diode.

Step 1: Used Hardware

The receiving IR diode is connected directly to the 5V digital output, and a potentiometer can be used to control the sensitivity (distance of the object) to which the receiving diode will react. The module is powered by Arduino 5V, it is also used to supply a transmitting IR diode that emits light permanently at 38kHz at a wavelength of 950nm / 940nm (depending on the diode used). The module can be found at retailers (Aliexpress and others) under the name KY-032, respectively Obstacle Sensor. There are several versions, I used the first version, which is constructed very simply.

The sensor reacts to an obstacle at a certain distance (set by a potentiometer) 2-40 cm. When an obstacle is detected, a 5V signal is applied to the output terminal of the module that processes the Arduino. One of the (in) advantages of IR diodes is that light is able to reflect off shiny surfaces. That is, the shiny surface is detected at a shorter distance than the matte surface. This made me think of using this sensor differently as a tachometer. On the matt surface - the pulley of the crankshaft I glued a strip of tape about 1cm wide, or it is good to use aluminum foil, it has better reflective properties of light. I set the gain intensity so that at a constant distance from the pulley, the module only responds to the tape as it passes through the module at each crankshaft revolution, not to the pulley itself.

Step 2: Arduino, Output Hardware and Schematics

Arduino interrupts the signal from the module and adds a variable that is evaluated once a second by a formula that converts the read signals into the number of signals per minute. This makes it possible to determine the number of revolutions of the crankshaft (engine) per minute. Refresh the display is every second. The speed is later displayed on a 20x4 LCD character display with an I2C converter. Thanks to converters it is enough to connect 4 wires to the display. Power supply (5V), ground (GND), clock signal (SCL), data (SDA). The tachometer can be used for various machines, speed monitoring of pulleys of tractors, harvesters, but also in industry for monitoring processes, operation and activity of machines.

Step 3: Result and Source Codes

The program for the project and other interesting projects can be found at: or at e-mail: