Académique Documents
Professionnel Documents
Culture Documents
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.
Key Features:
Measures up to 99 000 RPM Instantaneous measurement Automatic DATA Hold Function LCD display Ni-Cad Rechargeable battery
Important: this tachometer uses a proximity sensor. In case you don't know how to make a proximity sensors, and/or how to operate them, please refer to this article first.
To understand how a micro controller 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.
Circuit explanation: 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 complicated to some of you, and an article should be released soon to explain it. The part in the blue shading is also standard in any 8051 microcontroller circuit, which includes the reset circuitry along with the crystal resonator that generates the clock pulses required. The power supply, shaded in light red, regulates a 9V rechargeable Ni-CD battery and also provides a very simple
battery monitor, with a green and a red LED, showing whether the battery need to be recharged or not. The switch SW1, shown in the upper yellow circle, is used to enable/disable the measurement or the counting process. When the switch is pressed, the device measures the RPM of the shaft under test, and constantly updates the reading on the LCD, when the switch is released, the last reading is held unchanged on the display, as long as the device stays on. When the switch is pressed again the old reading is replaced by the new one. The wire connection P1, which is connected to the output of the sensor, is connected to the pin 3.4 of the microcontroller, this pin has a dual function which is to count incoming pulses and increment a 8, 13, or 16 bit register according to the configuration of the timer T0. As you may have noticed, this schematics misses tow important items to be called a tachometer: The C code loaded into the microcontroller, which will be discussed later, and the proximity sensor, which will feed the pulses to be counted. The modified IR proximity sensor:
This schematic show the slight modification over the one proposed in this tutorial, which is the fact that the emitter LED uses a current limiting resistor of a higher value, to allow it to be turned on for a long period of time, because in this specific application, we need to turn the IR emissions on or off, but we don't need to inject high currents to reach high ranges... I recommend the reading of this article that fully covers all the aspects of this sensor. The CTRL line, is an input coming from the microcontroller (at the wire connection: P4), turning the IR emissions ON and OFF, and the OUT line, is the output of the sensor, which is fed to the microcontroller (at the wire connection: P1). After analyzing both the main board holding the microcontroller and the sensor, here is a simple
diagram showing how they are connected together. You will have to refer to the above schematics to see where P1, P2, P3 and P4 goes in the main board, as well as the other lines concerning the sensor.
This picture also shows what is meant by the connection of the sensor to the main board. The reason for separating the sensor from the main board, is to allow better performance sensors, or even other types of sensors to be connected to the device. In general, modular designs cost more, but is more useful in the prototyping phase...
Overview Based on the famous AT89C52 microcontroller , this 500 Khz frequencyMeter will be enough to trace and debug most of your circuits, to adjust 555 timers frequency and perform all kind of frequency measurements in Digital circuits. And once you have this tool between your hand, you will get used to it to the point of no-return! and you will say "remember the days we adjusted the frequency by trial and error till we get it..!" Note: This tutorial assumes you already have some basic notions about microcontrollers and general electronics skills.
To understand the block diagram below, you should recall the simplest definition of frequency: "the number of occurrences within a given time period". What we are trying to do is to count the number of electric pulses during a time of one second. To do this we need a counter, to count the pulses, and a timer so that every 1000 milliseconds, the processor stop counting, calculate the frequency and display it, then start counting again from zero.
This is the principle of operation of a frequency meter, however, to build a reliable frequency meter, we will need to do some more mathematical operations. For example: Some operations will accurately predict the frequency before waiting for a whole second to elapse, which will also increase the refresh rate. Another minor upgrade is to to display the average of the last 5 reading rather than displaying the frequency instantaneously (which can cause lot of display flickering if the frequency being measured is not very stable). This project will be discussed in two Parts, the Hardware and the Software. PART 1: HARDWARE The Hardware Parts
Lets start by this easy part,to make the project look far-or-less like a profession lab equipment, well I simply built it in an old Avo-Meter, one of those you find in stores for less than $5! (god bless china!), and then painted it all in black. (it was originally yellow!) And by the way, after I hacked that poor Avo-Meter, I also used the same leads for our frequency meter. As you can notice in the picture, there are 4 seven segments display Finally you can also notice the 2 connections for the leads (Blue shaded area). those connectors are standard for the test leads of most AVO meters and testing devices.
The Display Before Getting into the electronics, here is a final trick: To make the display look even neater and Protect it from dust and scratches, simply add a thin plastic film on top of it (it will be firmly held in its place when the frequency meter is re-assembled).
The electronics I am sure that you understand that to accomplish this project, we will need to perform some mathematical operations, as mentioned before, to increase the performance of the device. Thus we will rely on an AT89C52 microcontroller to perform all the required tasks in this project.
The Display system: While being very simple (as you can see in this diagram), the display system can seem complicated due to the high number of connections (as you can see in the schematic below). The main idea for this display system, is to connect all the 7segment cells together in parallel, but only power one of them in the same time. for example, here is the
sequence to show the number "1984": 1-Send the number "1" though the data lines 2-Energize the first cell while all other cells are off 3-wait for a short time delay (in my code i paused for 0.6 Millisecond) 7-Send the number "8" though the data lines 8-Energize the third cell while all other cells are off 9-wait for a short time delay..
4-Send the number "9" though the data lines 5-Energize the second cell while all other cells are off 6-wait for a short time delay..
10-Send the number "4" though the data lines 11-Energize the fourth cell while all other cells are off 12-wait for a short time delay.. 13-Start over from the step No: 1.
Believe