Consultas para el proyecto integrador

Consultas para el proyecto integrador

de Tomás Abel FLORENTINI SAVA -
Número de respuestas: 1

Quería hacer una consulta para mi proyecto, pero se me ocurrió que otras personas también podrían tener dudas para sus propios proyectos, entonces voy a abrir este tems para que puedan consultar.

Tengo para mi proyecto un eje que gira y no puedo controlar y otro que si gira y sí puedo controlar, para ambos hago una medición óptica y retroalimentación para que alcancen la misma velocidad de giro y a lo mejor se puedan acoplar.

Mi duda está en la medición de las velocidades con el microcontrolador. Para mi sistema lo que el micro vería serían pulsos largos y cortos cada vez que el motor da una vuelta. Yo pensaba en usar la captura de tiempos para esto. El problema es que el atmega328p solo tiene un pin de captura, entonces no puedo capturar el tiempo de los 2 ejes por separado. Para solucionar esto pensé algunas soluciones: 

-Usar un circuito analógico de conversión frecuencia-tensión.

-Usar un circuito digital de conversión frecuencia-tensión.

-Usar la interrupción de cambio de pin ya que lo que nos importa no es el momento en que ocurrió sino la diferencia entre los tiempos. Con el NAKED podemos hacer que las interrupciones tengan un tiempo de respuesta consistente. Por su parte esto tiene aparejado los conflictos de condiciones de carrera entre las interrupciones y el ciclo PID de retralimentación.

 -Usar un driver al que le especificás la frecuencia que querés. Esto  pierde toda la gracia del proyecto, ya que lo interesante es que el micro controle el motor usando la retroalimentación.

Para los conversores analógicos el principal problema sería su presición o consistencia: si uso un conversor para cada motor lo importante sería que para la misma frecuencia ambos devuelvan la misma tensión, si uso un conversor para uno y la captura para el otro el problema sería que el conversor me de una tensión de la que yo pueda recuperar la frecuencia con precisión. El conversor digital soluciona esto al tener una alta precision.

Habiendo escrito todo esto, me suena que la interrupcion por cambio de nivel es la mejor opción, ¿pero que pasa si las 2 interrupciones ocurren al mismo tiempo? Podría hacer que la de captura no bloquee la de nivel, pero entonces las interrupciónes deberían durar el menor tiempo posible para que ambas puedan terminar de ejecutarse antes que vuelva a cambiar el nivel. 

¿Algún consejo sobre cual método elegir?

En respuesta a Tomás Abel FLORENTINI SAVA

Re: Consultas para el proyecto integrador

de Martín Cruz -
Buenas Tomás.
Mi sugerencia rápida sería que intentes usar la BluePill para el proyecto. Creo que con los periféricos que tiene vas a poder hacer lo que queres y además vas a poder profundizar en el uso de toda la suite que ofrece ST.
En principio tenes un encoder en cada motor para medir la velocidad, verdad?
Los métodos que decís de conversor son válidos para un control de velocidad en la que no se requiere demasiada precisión en el control, creo que no serían aptos para un acoplamiento entre ejes... habría que verlo bien pero a priori no me suena una buena idea para acoplar ejes.
Cuando quieras lo podemos ver en una consulta.
Saludos!