Electronic – Accurate sensor for a rotating object

encoderlaseropticsrotarysensor

I have a square-shaped plastic plate (3 cm length X 3 cm width X 1.5 cm height) attached to a motor that rotates it at 500 Hz:

Drawing

I would like to have an interrupt fired on my microcontroller every time Point X (on rotating plate) reaches Position Y (fixed).

What would be an accurate way of accomplishing this such that the interrupt fires as exactly at that location as possible?

__

My notes: I would prefer not to modify the square plate with any additional material (so I'm guessing magnetic encoding is out). Therefore, I'm thinking some sort of optical interruption/reflectance sensor would do the job, but for greater accuracy perhaps the system might benefit from using an infrared laser diode placed above the plate, and a photodiode with matching wavelength range under the plate?

__

EDIT 1: I should mention that the square-plate is permanently fixed to the motor shaft, and cannot be removed to, e.g., insert an optical encoder disk in between.

EDIT 2: Detecting any/all of the four X corners of the square is OK; it doesn't have to be one particular X.

EDIT 3: Accuracy desired: +/- 0.1 mm radial travel.

Best Answer

Do you need to detect only that corner distinct from the others or will any corner work? If any one will work you can use a reflective type photodetector or possibly a Hall effect sensor. With proper positioning you can get it to detect the corner of the plate but you will not be able to distinguish one particular corner from the others.

Check out Optek reflective photosensors.