Sensor preciso para un objeto giratorio

Tengo una placa de plástico de forma cuadrada (3 cm de largo X 3 cm de ancho X 1,5 cm de alto) conectada a un motor que la hace girar a 500 Hz:

Dibujo

Me gustaría que se dispare una interrupción en mi microcontrolador cada vez que el punto X (en la placa giratoria) alcance la posición Y (fija).

¿Cuál sería una forma precisa de lograr esto de modo que la interrupción se dispare tan exactamente en esa ubicación como sea posible?

__

Mis notas: preferiría no modificar la placa cuadrada con ningún material adicional (así que supongo que la codificación magnética está descartada). Por lo tanto, estoy pensando que algún tipo de sensor óptico de interrupción/reflectancia haría el trabajo, pero para una mayor precisión, tal vez el sistema podría beneficiarse del uso de un diodo láser infrarrojo colocado sobre la placa y un fotodiodo con un rango de longitud de onda coincidente debajo de la placa.

__

EDICIÓN 1: debo mencionar que la placa cuadrada está fijada permanentemente al eje del motor y no se puede quitar para, por ejemplo, insertar un disco codificador óptico en el medio.

EDIT 2: Detectar cualquiera/todas las cuatro esquinas X del cuadrado está bien; no tiene que ser una X en particular.

EDICIÓN 3: Precisión deseada: +/- 0,1 mm de recorrido radial.

¿Cuál es el diámetro de la carcasa del motor?
@boardbite: ¿qué tan preciso necesitas? Dentro de 1 grado, o 0,4 mm, o 5 us; esos valores están bastante cerca de la misma precisión. Son bastante desafiantes para algunas técnicas. Así que creo que vale la pena ser claro acerca de la precisión. No me importa cómo lo especifiques, usa lo que tenga sentido.
@EMFields: El motor: Aprox. 2 cm de diámetro. El eje: aprox. 0,2 cm de diámetro.
@gbulmer: sería ideal detectarlo con una precisión de +/- 0,1 mm a lo largo de la trayectoria circular del punto X.
@boardbite: esa es una información muy útil. I SWAG +/- 0.1mm es aproximadamente 2us, o una respuesta en +/- 1 ciclo a 1MHz. Creo que eso elimina algunas de las respuestas.

Respuestas (6)

¿Necesita detectar solo esa esquina distinta de las demás o cualquier esquina funcionará? Si alguno funciona, puede usar un fotodetector de tipo reflectante o posiblemente un sensor de efecto Hall. Con el posicionamiento adecuado, puede hacer que detecte la esquina de la placa, pero no podrá distinguir una esquina en particular de las demás.

Consulte los fotosensores reflectantes de Optek .

Sí, no es necesario distinguir entre las esquinas. ¿Estaba insinuando que el fotodetector se colocaría lo suficientemente cerca de la esquina para que no se detectaran los reflejos de otros puntos a lo largo de los lados del cuadrado?
Sí, debe tener cuidado de colocar el sensor lo más lejos posible del centro. Como con cualquier sensor, habría algún pequeño error. Cuanto mejor sea su posicionamiento, menor será el error. También hay sensores de tipo transmisivo como indicó en su pregunta. Optek también los vende. Son baratos, así que tal vez pruebe un par de tipos. La calibración sería el mayor problema.

Un pequeño trozo de cinta brillante en la esquina (o incluso en el borde) podría detectarse con un LED y un fototransistor. La cinta plateada en la que estoy pensando se aplica a cintas magnéticas de 1/2 pulgada para marcar el comienzo de la cinta, pero estoy seguro de que 3M fabrica muchas otras cintas reflectantes adecuadas.

tal vez podría intentar instalar un codificador óptico en el eje del motor y leerlo con su microcontrolador con buena precisión. La idea de usar un láser y un fotodiodo es buena, pero si se necesita una gran precisión, se necesitaría un haz muy estrecho y colimado porque el plástico de forma cuadrada es bastante pequeño.

El codificador óptico es una idea utilizable; El único problema es que la placa no se puede separar del eje del motor para instalar el disco codificador óptico.
¿Qué sucede si instala un eje paralelo con un par de rodamientos y luego interconecta los ejes con una correa? Eso le daría una perturbación mecánica bastante baja y podría conectar el disco codificador en el segundo eje.

¿Puedes perforar un agujero a través de una esquina de la placa cuadrada? Si es así, coloque un LED en un lado y un detector en el otro lado. El LED brillaría a través del orificio por un breve momento mientras el orificio gira y permitiría que el detector viera el pulso. Para aumentar la precisión y reducir las perturbaciones externas, puede montar el detector en un tubo pequeño que tenga un diámetro interior similar al orificio que perfora en la esquina de la placa.

Puede comparar el diámetro del agujero con la circunferencia del círculo trazado por el agujero a medida que gira. Esa relación comparada se puede usar para calcular el ancho de pulso que se espera del detector considerando el período de rotación de la placa. A 500 Hz, el período de rotación es de 2 mseg.

Coloque el agujero a 0,5 cm del borde de cada lado de la esquina de la placa de modo que la parte de la placa le dé al agujero un radio de rotación de 1 cm. Esto permitirá que la placa oculte completamente el tubo detector, excepto cuando el orificio esté directamente sobre el tubo. Con un radio de 1 cm para la trayectoria circular del agujero, la circunferencia total sería de ~6,283 cm. Un pequeño agujero de 0,3 cm daría como resultado una relación de 0,3/6,283 = 0,0477. El período de rotación escalado haría que el tiempo que el agujero estuviera sobre el tubo detector fuera del orden de 95 usec. Por supuesto, el sensor vería una cantidad creciente y luego decreciente de luz del LED a medida que el orificio se eclipsa sobre el tubo detector.

Cualquier fotodetector razonablemente decente debería poder "ver" un eclipse de pulso de 95 usec de ancho. Para facilitar el manejo de los circuitos, le recomiendo que pruebe un detector como el Fairchild QSE158 disponible en Mouser por alrededor de un dólar. Un detector como este facilita las cosas porque simplemente lo enciende con 5-> 15 voltios y obtiene una salida de nivel lógico de colector abierto que puede conectar a su MCU con una resistencia pullup adecuada.

Un emisor compatible con este tipo de sensor sería el Fairchild QEE123 . También disponible en Mouser , esta pieza puede desviar su suministro con una resistencia en serie seleccionada para permitir que 20->75 mA fluyan a través del LED infrarrojo.

También me vienen a la mente un par de cosas más. Podría colocar el orificio muy cerca de la esquina de la placa, pero luego la lógica de detección de la MCU de destino se vuelve un poco más compleja porque tendría que discernir la diferencia entre las esquinas de la placa que pasan sobre el detector y una esquina que incluye el adicional. pulso más estrecho debido al agujero.

Si no puede perforar la placa, considere pegar un trozo de tubo de plástico opaco a lo largo de un borde de la placa. Luego, coloque tanto el emisor como el detector en los extremos de una pieza equivalente de tubería que esté alineada con la tubería del borde una vez por revolución de la placa. Esto dará un esquema de pulso eclipsado similar. Debido a las mayores distancias involucradas, deberá tener un poco más de cuidado al alinear los tubos y apuntar el sensor/emisor de manera concéntrica hacia el centro de los tubos.

No puede modificar la placa y dice que no puede quitar la placa para colocar un codificador.

¿Puedes poner una marca en el eje del motor debajo de la placa para que pase un sensor óptico cuando el punto X se alinee con el punto Y? Esa parece la solución más simple. Una marca, o un pequeño imán, o un bulto que rompe un haz, o un bulto ferroso que excita un sensor VR o hall.

Yo usaría un Microswitch(tm) o un interruptor similar colocado para ser golpeado por una esquina de la placa, aunque, sin modificar la placa ligeramente, esto le daría cuatro pulsos por revolución.

Gracias, pero me preocupa que este método implique desgaste con el tiempo y también pueda interrumpir la rotación. Sería preferible un método sin contacto.
Primero encuentre un microinterruptor que funcione siendo accionado a 500Hz... No lo creo.