RPM from rear wheel

Hi guys first post, basically I would like to measure the rpm of the rear wheel of the motorcycle using a proximity sensor and measuring the pulses. By using the brake disk the sensor will pick up the disk bolts. Most rpm projects I see just use one pick up point (so that would be 1 bolt in this case) however as there will be 5 bolts pickups per revolution how would I go about coding this?
So along the lines of 5 pulses=1 revolution and then converting to rpm.

Kind regards
Haydn

What kind o proximity sensor are you thinking? Probably not the best method.

I would suggest to use a hall sensor and a magnet glued to the wheel.

Just a 12v NPN circular sensor. I thought about hall effect but gluing a magnet to a brake disk that can travel up to 160mph might not work too well

Just do a google search for "hall gear tooth sensor"

Actually, A VR (Variable Reluctance) sensor would work quite well as long as the brake disk is non-Ferrous. They are very simple and reliable, being nothing more than a coil around a magnet core. Move anything Ferrous past the core tip and the coil produces a pulse. It will require a little conditioning and does not work well at very low speeds - but do you really need extreme accuracy at 1 RPM on a motorcycle wheel? And it does not require mounting anything on the brake disk.

If you have a sensor you think will work then use that. It sounds perfectly reasonable to me. The other suggestions above aren't wrong but I don't see any reason to tell you to change.

Actually more pulses per revolution are helpful. ABS brakes use hundreds of pulses per revolution to get a really good estimate of what the wheel is really doing. 5 should be just fine for speed measurement.

One good way of averaging the speed, so it doesn't get too 'jumpy', is to measure many revolutions. Start a timer and start counting bolt heads. When you've seen 60 bolt heads, then look at the time and do your calculations for the distance moved with 60 bolt heads.

Just a 12v NPN circular sensor. I thought about hall effect but gluing a magnet to a brake disk that can travel up to 160mph might not work too well

You don't need to glue to the brake disc, it might get too hot. Just glue to the well itself. It's very common practice to glue heavy pieces of lead to balance the wheel, I can't see why a tiny 5mm by 1mm thick magnet would be a problem.

A more sophisticated approach is to simply connect to the bike's CAN Bus (if it's a modern bike) and read the read wheel speed from there :slight_smile:

A car ABS sensor - as described by Due_unto - if mounted near to the cogs of the (steel) chain sprocket would give a good signal...

Allan

MorganS:
One good way of averaging the speed, so it doesn't get too 'jumpy', is to measure many revolutions. Start a timer and start counting bolt heads. When you've seen 60 bolt heads, then look at the time and do your calculations for the distance moved with 60 bolt heads.

Sorry I'm reasonably new to this, do I need to get a timer library? In my head it would work as when its seen 5 bolt heads (pulses) add 1 to rpm with a delay in between counting to give it time to actually count.

I have though about splicing into the actual rpm sensor on the bike which pulses from the crank shaft however I don't want to be splicing into my bike at this point!!!

It would be perfectly possible to measure the time each bolt passes the sensor and update the RPM 5 times per revolution.

...R

I found this post that looks similar to what I'm trying to achieve:

http://www.societyofrobots.com/robotforum/index.php?topic=14973.0

Although I don't quite understand this bit:

rpm = (7500*rpmcount)/(millis() - timeold);
timeold = millis();

what would be the use of 7500? Circumference?

what would be the use of 7500? Circumference?

No, it is what you get when you correct the milliseconds time base to be seconds, 60 seconds per minute, and 8 counts per rev.

60*1000/8 = 7500.

Work some number through. Say you see 8 counts(one revolution) in 1000milliseconds (one second)

7500*8/1000 = 60 rpm