A tachometer is a device that is used to measure the speed of rotation of any device. Using the analog voltage reading property of an arduino, this can be easily implemented using the appropriate parts. Tachometers have a variety of applications, including measuring the speed of dc motors in order to ensure they are running according to specifications.
Fig. 1: Prototype of Arduino based Digital Tachometer
Fig. 2: Image of Arduino Microcontroller Board
Fig. 3: Image of Tachometer Circuit on Breadboard
Components Required:
- Arduino board with ATmega32 microcontroller
- Any DC motor (preferably battery operated)
- Motor wheel
- Resistor
- Potentiometer
- Seven segment display
- Jumper wires
- IC 7447
- LED
Working Principle.
· In order to make a tachometer, we will have to convert the speed of rotation into a readable form. The only form the arduino can read is in terms of electrical voltage.
· It is well known that if voltage is given to a motor the motor wheel will turn, the speed of which is determined by the amount of voltage given. However the converse is also true, meaning that if we were to rotate the motor by ourselves, we can obtain a voltage across the two ends of the motor terminals.
· This voltage can be fed to the arduino and the arduino can compute the speed of rotation depending on how much voltage was fed to it by the rotating motor.
Procedure and Guidelines
Procedure and Guidelines
- The circuit diagram is as shown in the circuit diagram tabs. Circuit Diagram1 – circuit schematic without using driver ICand Circuit Diagram 2 – circuit schematic using 7 segment display driver IC7447.
- The motor is connected to a resistor and a LED diode. The resistor is used to prevent excess current which would normally damage the arduino. The LED is used to indicate when the motor is working and also to prevent backward operation.
- Because we have so many pins of the arduino leftover, we can directly connect them to the 7 segment display. Alternatively we could use a seven segment display driver, which would reduce the number of pins used and also make the implementation easier in terms of the coding process.
- Once the motor is turned, a positive voltage will be given to the analog in pin of the arduino.
- The arduino will process the analog reading. Since we use a seven segment display, we can have 10 values, ie from 0 to 9. We can program the arduino to divide the analog reading it gets into 9 divisions, which will give the required output from 0 to 9 on the seven segment display .
- In case IC7447 is used, one more step is added in that the values from 1 to 9 are converted to their binary equivalents before being passed on to the appropriate pins of the IC.
- In case a perf board is being used , you should be careful not to solder he IC itself, instead , an IC holder
- As a precaution, always test the voltage of the motor first. This can be done by connecting a multimeter across the two motor terminals and spinning the motor manually with your hands. If the voltage reading is more than 12V then the motor should not be used as there is a chance to harm the arduino board.
- In case you want to adjust the sensitivity of the instrument, a potentiometer can be used in place of the resistor. The lower the resistance, the higher the sensitivity.
You may also like:
Project Source Code
###
intval=0; intbinVal; void setup() { Serial.begin(9600); // setup serial pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(A2,INPUT); } void loop() { val = analogRead(A2); // read the input pin Serial.println(val); // debug value binVal=val/1024*9; switch(binVal){ case 0: digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 1: digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 2: digitalWrite(3,LOW); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 3: digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); break; case 4: digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 5: digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 6: digitalWrite(3,LOW); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 7: digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); break; case 8: digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); break; case 9: digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); break; default: break; } }
###
Circuit Diagrams
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.