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:
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.
¿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 .
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.
¿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.
Campos EM
gbulmer
mordedura de tabla
mordedura de tabla
gbulmer