Introduction
A Speed Measurement System is an electronic system designed to measure the speed of a moving object such as a motor shaft, wheel, or vehicle. This project is widely used in automotive testing, robotics, and industrial applications.
The system uses sensors like IR sensors, Hall Effect sensors, or optical encoders to detect motion and calculate speed.
Objective of the Project
- To measure the speed of a rotating or moving object accurately.
- To interface sensors with Arduino for real-time speed calculation.
- To display speed digitally using an LCD or Serial Monitor.
- To understand the relationship between rotation, time, and speed.
Working Principle
The Speed Measurement System works on the principle of time measurement of rotations.
How It Works
- A sensor detects each rotation or passage of a marked point.
- Arduino measures the time interval between successive pulses.
- Speed is calculated using the formula:
Speed=DistanceTimeorRPM=60Time per revolutionSpeed = \frac{Distance}{Time} \quad \text{or} \quad RPM = \frac{60}{Time\,per\,revolution}Speed=TimeDistance​orRPM=Timeperrevolution60​
- Speed is displayed on LCD or Serial Monitor.
Components Required
- Arduino Uno
- IR Sensor / Photodiode / Hall Effect Sensor
- Reflective tape or disc for rotation detection
- 16×2 LCD Display (optional)
- Jumper Wires
- Breadboard / PCB
- Motor or rotating object for testing
Circuit Diagram
Connections
IR Sensor:
VCC -> 5V
GND -> GND
OUT -> D2 (Arduino digital input)
16x2 LCD (Optional):
RS -> D7
EN -> D6
D4 -> D5
D5 -> D4
D6 -> D3
D7 -> D2
VCC -> 5V
GND -> GND
VO -> Potentiometer middle pin
Arduino Code for Speed Measurement System
int sensorPin = 2;
volatile int count = 0;
unsigned long startTime;
void setup() {
pinMode(sensorPin, INPUT);
attachInterrupt(digitalPinToInterrupt(sensorPin), countPulse, RISING);
Serial.begin(9600);
startTime = millis();
}
void loop() {
delay(1000); // Measure speed every 1 second
unsigned long currentTime = millis();
unsigned long elapsedTime = currentTime - startTime;
float rpm = (count / (elapsedTime / 60000.0)); // Revolutions per minute
Serial.print("Speed (RPM): ");
Serial.println(rpm);
count = 0; // Reset count
startTime = currentTime;
}
void countPulse() {
count++; // Increment count on each sensor pulse
}
Code Explanation
- IR sensor detects rotation or movement.
attachInterruptcounts each pulse from the sensor.- Arduino calculates RPM using pulse count and time interval.
- Output displayed on Serial Monitor or LCD.
Advantages
- Accurate speed measurement
- Real-time display
- Easy to implement
- Can be used in various applications (motors, vehicles, robotics)
Applications
- Motor RPM measurement
- Vehicle speed monitoring
- Conveyor belt speed monitoring
- Robotics and automation systems
Future Enhancements
- Display speed on LCD or 7-segment display
- Wireless speed monitoring via Bluetooth or IoT
- Alarm for overspeed conditions
- Integration with data logging system
Conclusion
The Speed Measurement System is a practical and useful electronics project that demonstrates sensor interfacing and real-time calculations using Arduino. It is ideal for students learning about embedded systems, motors, and automation applications.
