Featuring LCD display and automatic DATA hold function
By Ibrahim Kamal
Last update: 14/7/10
This article describes how to build a contact -less tachometer (device used to count the revolutions per minute of a rotating shaft) using a 8051 microcontroller and a proximity sensor.
As the name implies, what makes this device special, is that it can very accurately measure the rotational speed of a shaft without even touching it. This is very interesting when making direct contact with the rotating shaft is not an option or will reduce the velocity of the shaft, giving faulty readings.
This device is built on an AT89S52 (or AT89C52) microcontroller, an alpha-numeric LCD module and and a proximity sensor to detect the rotation of the shaft whose speed is being measured.
A 600 mA.h Ni-Cd battery provides months of regular use of this device before it needs to be recharged.
Measures up to 99 000 RPM
Automatic DATA Hold Function
Ni-Cad Rechargeable battery
Contact less tachometer principle of operation
The idea behind most digital counting device, frequency meters and tachometers, is a micro-controller, used to count the pulses coming from a sensor or any other electronic device.
In the case of this tachometer, the counted pluses will come from proximity sensor, which will detect any reflective element passing infront of it, and thus, will give an output pulse for each and every rotation of the shaft, as show in the picture. Those pulses will be fed to the microcontroller and counted. To understand how a microcontroller counts pulses, and deduce the frequency of those pulse, please refer to this tutorial about building a frequency meter, that elaborates the process of frequency counting.
The main difference between this tutorial about tachometer and frequency meters, is that we need the reading in pulses per minutes (to count revolutions per minutes), but in the same time, we don't want to wait a whole minute before getting a correct reading. Thus we need some additional processing to predict the number of revolutions per minute in less than a second.
Instantaneous measurement algorithm
To be able to deduce an RPM reading in less than second, while constantly refining the reading's accuracy, a simple algorithm have been developed, where a counter and a timer are used. Counter and timers are part of the internal features of a micro-controller, (like the AT89C52 used in this project) and they can be easily configured through programming. The schematic below, shows how the timer and the counter are used for this task; The counter is connected i such a way to count pulses coming from the proximity sensor, while the timer is used to precisely feed the counted value to the microcontroller every filth of a second, and reset the counter to 0. The microcontroller can now take an average of the last 3 readings (saved in C1, C2 and C3) and calculate the average numbers of pulses per fifth second, then multiply this value by 5, to get the number of pulses per second, then multiply this value by 60 to get the number of pulses per minute, which represents the measured RPM. The only purpose of calculating an average reading is that it will allow to get morestable reading and prevent display flickering.| |
C1, C2 and C3 are used to store the last 3 reading
The electronic Circuits
This device is composed of 2 electronic circuits: the Sensor, which is a slightly modifiedproximity sensor, and the microcontroller board, which analyses pulses coming from the sensor, process them and display the result on the LCD display.
The microcontroller board:
The LCD connections in the green shading is a standard for most of alpha numeric LCDs, the only feature I added is to be able to control the back light via the 80c52 microcontroller. The LCD protocol can seem...