It is quite common for cyclists and exercise bike users to need to measure their speed and distance traveled. For this, we need a device known as an odometer.

The odometer is responsible for measuring these variables and transmitting this information to the user.

In this article, we will develop an odometer using the Arduino to measure these quantities and have other features in order to offer new features to the user.

In the following, we will introduce the features of our Arduino Odometer.

For this project, you'll need of this following components.


PCBWay Custom PCB

Switch Button - UTSOURCE

10kR Resistor - UTSOURCE

LCD 16x2 Display - UTSOURCE

Reed Switch - UTSOURCE


The Arduino Odometer

For constructing the Arduino Odometer we'll be implementing the following features:

Firstly, we'll create a function to calculate the distance and approximated velocity.

Posteriorly, we'll increment a feature of an alarm using the traveled distance, in other words, through this it will be possible to generate an alarm for the user when he reaches a programmed distance or a time determined.

Through this system, the user will configure the radius of wheels and posteriorly, the traveled distance will be calculated based on the radius configured by the user.

In addition to the system will calculate the velocity through the movement. In other words, will be detected if the bicycle is in motion and, after this, will be calculated the velocity based on the traveled distance and the time using the Arduino.

The presented features are present in several odometers, but in this model, we'll implement the function of alarm.

Odometer Alarm

Through this functionality, the user can calculate two types of alarms:

  • Time of use;
  • Traveled distance.

The project flowchart is presented below.


Figure 1 - Project Flowchart.

That is, if the user sets the alarm by the time of use, he will receive an alarm when he has pedaled for a certain time set by him. This way, if the user sets 15 minutes, the system will trigger the buzzer when it reaches the set time.

Otherwise, if the user sets the alarm for the distance traveled, he must inform the distance used as an alarm. That is, if he selects 2km, the buzzer will beep when he reaches this distance traveled.

Article Continuation

If you are interested in following the full development of this project, follow the profile of Silicon Lab and PCBWay.


Thanks to the PCBWay for support the our YouTube Channel and produce and assembly PCBs with better quality.

The Silícios Lab thanks UTSOURCE to offer the electronic components.