I've had dozens of e-mails over the years asking how to measure the speed and I've always suggested using a broken light beam and a counter, but I've never built one myself. I even suggested to one person that they use a slot-car lap counter since I'd seen on one sale at Toys 'R Us for 99 cents and she said that it worked perfectly, but not everyone can find a good deal like that.
It just so happened that I got one of these "how do I measure the motor speed?" e-mails on the same day my new Arduino Diecimila microcontroller board arrived from the Make Store, so I thought that would make a great weekend project.
Here is the result, an optical tachometer for Beakman's Electric Motor using an IR emitter/detector pair and a Arduino board. With a few modifications to the programming, you can use this tachometer for measuring other things such as fan or propeller speed. Notes are included on what to change for different applications.
How to have fun with Arduino is a good source of basics on how to setup and use the Arduino board.
Remove these ads by
Signing UpStep 1Materials Needed
Available from the Make Store or from several other online resources. Note however that the techniques of this Instructable could be adapted for other microcontrollers and circuits.
Computer with Arduino software and USB cable
IR LED and IR phototransistor
I used a Radio Shack #276-142, but that may be an old part number. Parts selection on this probably isn't too critical.
Visible light LED
I used a high-brightness red one that I had around. Actual selection not too critical.
10K Ohm resistor
220 Ohm resistor
Breadboard (semi-optional), hookup wires, clips
Opaque tape, such as black electrical tape
Framework for holding LED and detector
Use your imagination, I used KNex pieces to build a frame.
Beakman's Electric Motor (or something else to measure)
Original instructions for building the motor are here: Beakman's Motor
Similar plans are available from other places, such as this Instructable:
Simple Electric Motor
| « Previous Step | Download PDFView All Steps | Next Step » |



















































I have uploaded the code to my arduino and it works great, up to about 7500RPM then it starts sending random numbers and the occasional 0.
Have I run into a timing limit or what? I really need to read up to about 20,000RPM . I am using a signal generator sending a square wave to the board on the bench and the output goes wierd with a 250hz square wave inout from the sig gen. At 250hz the RPM indicates 7500rpm on the nose. Thanks for your assistance. Great program!!
How did you validate that it is actually working properly? I found that if I spin it very slowly (<10 RPM), the interrupt is triggered like crazy, generating hundreds of falling edges per second. I notice you have no debouncer for lower frequencies.
Thanks,
Peter
And i Found out, That you can also Use a Reed Sensor for Measuring. Or an Hall-Sensor. I Tried out Both and the Hall sensor worked best for me.
One alternative is to allow the coil to sit inside a loop of wire (like the design that uses a large safety pin instead of bent paperclips). This wouldn't ensure proper contact all the time, but would minimize jumping.
What I'm thinking of doing is using two straight, rigid pieces of large, bare copper wire or metal tubing with a non-conductive joint in the middle, then winding a coil with a large number of turns out of very thin magnet wire, then inserting the rod through the width of the coil and soldering the bared ends to the tails. Then use paint on one side of one tail to mimic the half-sanded insulation on the magnet wire. This coil should be heavy, very stable, and have a high electromagnetic density. When I get a chance to build it, I will add it to the Instructable in case these instructions aren't too clear.
I estimate that speeds around 2500 RPM shouldn't be impossible. Of course this motor design is inefficient and doesn't provide much torque, so there is no reason to super-optimize it except for fun.
Other things to remember are (a) use a fresh battery - the motor isn't too kind to them and (b) there is a bit of arcing at the contact points, so periodically you need to wipe off the coil tails and the "brush" points as carbon can build up.
The paper clip arms need to be the same height as well (but they are easily - maybe too easily - adjusted).
I've also thought about gluing small craft beads on the coil tails to keep it from "walking" side to side - something else that will slow it down or stop it.
If you look at the Beakman's Motor page, there are some links to other designs of simple motors and you can find a ton of them via Google (there is a cool brushless motor that uses a magnet reed switch where the motor shaft has permanent magnets attached and it rotates beside an electromagnetic coil - I think I'm going to build one of those some day).
Another good Science Fair type project would be to compare the speed and efficiency of the different types of simple motors.
thank you!