Parts List:
(1x) Arduino Uno REV 3 Radioshack 276-128
(1x) Switch-Magnetic Reed Radioshack 55050593
(1x) 10K Ohm 1/4-Watt Carbon Film Resistor Radioshack #271-1335
(1x) 9V Alkaline Battery Radioshack #23-866
(1x) Heavy-Duty 9V Snap Connectors Radioshack #270-324
(1x) PC Board with Copper Radioshack #276-147
(1x) Parallax 27977-RT Serial Backlit LCD Radioshack 276-120
(x2) SPST PC-Mountable Submini Toggle Switch Radioshack #275-645
(2x) Male Header Pins Jameco 103393
(1x) Female Pin Sockets Jameco 308567
Additional Materials:
22 Gauge Wire Radioshack #278-1224
Solder Radioshack #64-013
sand paper
plywood
wood glue
hot glue
screws
zip ties
sugru
Download Arduino IDE
Remove these ads by
Signing UpStep 1: Schematic
It consists of three switches:
-one to connect to a 9V power supply
-one to switch the backlight of the LCD on and off
-a magnetic switch (called a reed switch) which closes each time the wheel completes one full rotation.
The Parallex LCD is designed to connect to the arduino using only three pins (ignore the labels and the other pins int his schematic). One to 5V, one to ground, and a third to serial out (TX)- on the arduino, serial out is digital pin 1.
10kOhm resistors are connected to the reed and backlight switches to prevent excess current between 5V and ground (you should never directly connect 5V and ground on the arduino!)










































![pimpMyBike[2] =](http://www.instructables.com/files/deriv/FM2/V1C6/H9T4FC34/FM2V1C6H9T4FC34.SQUARE.jpg)
![pimpMyBike[0] =](http://www.instructables.com/files/deriv/FKC/4IDL/H9T4FC4H/FKC4IDLH9T4FC4H.SQUARE.jpg)









Visit Our Store »
Go Pro Today »




I know it's not so easy to keep things small, but i would suggest using an Arduino Nano or similar, and a smaller 3D Printed box...
And regarding the electronics of it, maybe use a dynamo and a rechargeable battery?
The older dynamo were pretty annoying, but i think the newer ones are pretty awesome, since they're so silent and have a bearly noticeable resistance (mechanical resistance) since they're in the center of the wheel.
Anyhow, nice project, i like these kinds of projects, because they're relatively easy to build and you can always improve them with fairly small efforts (eg. add average speed, driven distance, automatic standby when the wheel didn't turn for a certain amount of time, etc.), there are thousands of possibilities! :)
http://learn.parallax.com/KickStart/27977
How about RPM can that be calculated?
If you want the lcd to output rpm:
add:
float rpm = 0.00; //variable rpm
and insert the line:
rpm = float(6000)/float(timer);//calculate rotations per minute
after:
mph = (56.8*float(circumference))/float(timer);
and:
rpm=0;
after:
mph=0;
and create the function:
void displayRPM(){
Serial.write(12);//clear
Serial.write("RPM=");
Serial.write(13);//start a new line
Serial.print(rpm);
Serial.write(" RPM ");
//Serial.write("0.00 RPM ");
}
and call this function in the main loop when you would like to display the RPM
and yes you could definitely expand to include temp, battery, etc, there are plenty of available pinson the arduino.
rpm = float(60000)/float(timer);//calculate rotations per minute
Thanks.
1miles/63360inches * 1000ms/sec * 60sec/min * 60min/hr = 56.8
and yes, I think I made a mistake, it should be 60,000 to calculate rpm from rev/ms:
1000ms/sec*60sec/min = 60000
thanks for catching that.
https://github.com/carmolim/cycloduino
well... I still have a long way ahead, butI´ll probably post the complete project here... I'm glad you liked the project I'm developing in my spare time and I'm having so much fun...
thank you for your help!
That is can the reed switch be used for speeds upto 50kmph and car tyre radius of about 16 inches?
http://www.instructables.com/id/Easy-ultrasonic-4-pin-sensor-monitoring-hc-sr04/
http://www.arduino.cc/en/Tutorial/Ping
"In file included from UltrasonicDemo.pde:8:
D:\arduino-1.0.2\libraries\Ultrasonic/Ultrasonic.h:11:22: error: WProgram.h: No such file or directory"
heres the code i found
//Vcc to 5 volt +
//Trig to pin 12
//Echo to pin 13
//Grd to Grd
//Piezo to pin 9
//GRD to GRD
#include "Ultrasonic.h"
Ultrasonic ultrasonic(12,13); //12,13 are pin assignements
intbuzzPin = 9; // positive connection of the piezo
int delay1 = 25;
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print("cm :");
Serial.print(ultrasonic.Ranging(CM));
Serial.println("");
//delay(100);
if(ultrasonic.Ranging(CM) > 0 &&ultrasonic.Ranging(CM) <= 5)
{ tone(buzzPin, 100 ,100); delay(100);}
if(ultrasonic.Ranging(CM) > 5 &&ultrasonic.Ranging(CM) <= 10)
{tone(buzzPin, 100 ,100); delay(100);}
if(ultrasonic.Ranging(CM) > 10 &&ultrasonic.Ranging(CM) <= 20)
{tone(buzzPin, 15 ,100); delay(50);}
if(ultrasonic.Ranging(CM) > 20 &&ultrasonic.Ranging(CM) <= 30)
{tone(buzzPin, 14 ,100); delay(50);}
if(ultrasonic.Ranging(CM) > 30 &&ultrasonic.Ranging(CM) <= 40)
{tone(buzzPin, 13 ,100); delay(50);}
if(ultrasonic.Ranging(CM) > 40 &&ultrasonic.Ranging(CM) <= 60)
{tone(buzzPin, 12 ,100); delay(50);}
if(ultrasonic.Ranging(CM) > 60 &&ultrasonic.Ranging(CM) <= 90)
{tone(buzzPin, 11 ,100); delay(050);}
if(ultrasonic.Ranging(CM) > 90 &&ultrasonic.Ranging(CM) <= 120)
{tone(buzzPin, 10 ,100); delay(50);}
if(ultrasonic.Ranging(CM) > 120 &&ultrasonic.Ranging(CM) <= 200)
{tone(buzzPin, 9 ,100); delay(50);}
if(ultrasonic.Ranging(CM) > 120 &&ultrasonic.Ranging(CM) <= 200)
{tone(buzzPin, 8 ,150); delay(50);}
if(ultrasonic.Ranging(CM) > 200 &&ultrasonic.Ranging(CM) <= 300)
{tone(buzzPin, 9000 ,150); delay(50);}
}
i already put the files in the arduino library..but theres still error..can you help me.. thank you ..:)
Just wanted to say that my project is hosted here: https://github.com/carmolim/cycloduino
I would like you to take a look to see if I am following in a good way and if possible give some suggestion.
Thank you.