Bicycle Computer

Hello, my name is Usman and I go to City Polytechnic High School. My main project is a bicycle speedometer/computer.


Usman A.

Area of Interest

Software Engineering


City Polytechnic High School


11th grade /Incoming Junior

Final Milestone

My second milestone was to make hall effect sensor values display on the LCD. I used the Arduino liquid crystal library. I basically combined the code I wrote for the LCD to display and the hall effect sensor code. I made a global variable and named it s and set it equal to a variable hallstate. Hallstate reads the hall sensor, stores its values on s. I created a loop and placed my main code for the values in it. So basically I wrote an if statement in which every time the variable hallstate detects any values it adds 1 to it and displays the final result. And then I wrote a set cursor function and set its parameter to the initial value of the variable displayed on the LCD. Then I wrote a LCD print function which prints the values on the LCD. It basically displays the values stored on s on the LCD screen.

First Milestone

Hi, My name is Usman and I am a rising junior at City Polytechnic High School. For my main project, I chose to do a bike speedometer. I finished my first two milestones. My first milestone was to test all components such as the Arduino, the hall effect sensor, and the LCD. To test the Arduino, I uploaded some test code to the Arduino to see if it was functioning correctly. The hall effect sensor senses a magnetic field.  The closer you bring a magnet to the sensor the higher the signal strength, the farther away from the magnet the lower the signal strength. To test the hall effect sensor, I put it on the breadboard and wired the connections to the Arduino ground pin to the negative terminal and the 3.3 volts to the positive terminal. I also connected the positive pin with the positive terminal and the negative pin to the negative terminal on the breadboard. The AO is the analog out on the hall sensor. To test the LCD I connected the LCD ground to the Arduino ground, VCO pin to 5 Volts to power the LCD, SDA to the A4 socket, and SCL to the A5 socket. The SDA is the serial data line which sends data to the Arduino and the SCL is the serial clock line. The serial data line keeps track of the data from the Arduino while the serial clock line keeps track of the synchronization. I wrote some code using an Arduino library that allowed me to display some text. One of the problems I was faced with was the LCD was not displaying any text. So I spent a lot of time debugging using debugging I figured out that I had to change the code slightly. I did not have the right model name for the LCD in the code. I used the serial monitor on the Arduino to find the right model of the LCD. So I changed the model name and the LCD started displaying text.

Rainbow Light Show

For my starter project, I chose the Rainbow Light Show. For this project, I soldered components such as IR sensors, transistor, and a capacitor for this project to function. Infrared sensors which determine when the different LEDs light up and the brightness. Basically, you have to place your fingers over the IR sensors in order for the color to change. So there are three Ir sensors in order to make the rainbow light show. The IR LEDs on the sensor shoot out a beam of infrared light which reflects off your hand into the phototransistors. These phototransistors determine how much current is allowed to go through based on how much light is exposed to the phototransistors. This current is then read by the IC which determines how bright the LEDs should light up. The IC is a microcontroller. The higher the current the brighter the LEDs. One of the problems I had to overcome was the connections not working. So I used the multimeter to check my connections and found out that it wasn’t receiving the 5 volts. So I had to solder it with the connection to make it work.

Leave a Comment

Start typing and press Enter to search