Looking for "sensor" to count turns

Hi,

I'm stuck with my problem and I need guys your help to think along. Currently I want to build shaft counter and there is some requirements which I have to follow like I can only put on hose clamp (http://www.cn-parts.ee/pood/17776-9754-thickbox/vooliku-klamber-20-35mm.jpg) on shaft. Because big items can fly away from shaft or causing vibration which is not allowed. Shaft can have a maximum spindle speed of 1000 rpm which is quite fast. So what could be the best solution for 0 to 1000 rpm sensor counter for this solution. For using some optical sensors or DC motor frequency? Or enything else?

i have no idea if this is practical for 1000rpm, but maybe take a look at how speed is measured with a bikecomputer and a magnet inducing a pulse or with some sort of reed switch

1000 rpm really isn't all that fast. Small electric motors routinely run well over 10000 rpm these days

I forgot to add that distance of shaft and it's connector frame can be 1cm to 20cm. So in some situations magnetic (hall) can not be used for example 10cm distances.

Attach a mirror to it and bounce a laser beam into a phototransistor.

You could also put a little screw in the shaft and then using a capacitive sensor near to it.When it rotate pass in front of the sensor and generate an impulse.Then you can attach that signal(must insure voltage level compatible ) to a timer inside arduino, with an interrupt on falling edge.

Since balance is an issue, use a piece of black tape with a white spot on it and an optical sensor.

Why bother with the tape... Paint the whole disk black and then put as many spots as you need for accuracy...

Bob

Docedison:
Why bother with the tape... Paint the whole disk black and then put as many spots as you need for accuracy...

Yep. Tape can come off.

What would you use as a sensor?

Look into rotary encoders. Optical is the best, but may be pricy. You can even determine direction, if needed.