Como detener un servomotor con arduino

Como detener un servomotor con arduino

Como detener un servomotor con arduino

Arduino 360 servo library

Después de algunas pruebas llegué a los siguientes valores para la duración de los pulsos que funcionan con mi servo. Los pulsos de 0,6ms de duración corresponden a la posición de 0 grados, 1,45ms a 90 grados y 2,3ms a 180 grados.Conecté un multímetro en serie con el servo para comprobar el consumo de corriente. El máximo consumo de corriente que noté fue de hasta 0,63A en la posición de parada. Bueno, eso es porque este no es el servo original TowerPro MG996R, sino una réplica más barata, que obviamente tiene peor rendimiento.Sin embargo, vamos a echar un vistazo a una forma más conveniente de controlar los servos utilizando Arduino. Es decir, utilizando la biblioteca de servos de Arduino.

Servomotor arduino código 90 grados

No sé por qué, dónde o cómo lo he pillado, pero creo que si alimentas un motor eléctrico bloqueándolo, y por tanto impidiendo su movimiento, lo dañas. Estoy pensando en el siguiente tipo de motor, y posiblemente en los servomotores:

La razón por la que algunos motores no deberían estar parados con toda la tensión aplicada es el calor. Toda la energía eléctrica que entra en el motor va a calentar el motor. Muchos motores pueden sobrecalentarse de esta manera. Diseñarlos para que puedan disipar el calor de la tensión máxima aplicada mientras están parados requeriría hacer otros parámetros menos deseables. En muchos casos eso no merece la pena.

Lo que hace que la parada de un motor sea aún peor es que es cuando consume la mayor cantidad de corriente. Así que no sólo se vierte más potencia eléctrica en el motor, sino que una mayor fracción de ésta se convierte en calor en el motor a baja velocidad.

Para una primera aproximación bastante buena, piense en un motor como una resistencia en serie con una fuente de tensión. La resistencia es sólo la resistencia de CC de los devanados. La fuente de tensión representa el motor actuando como un generador mientras gira. La tensión es proporcional a la velocidad, y se opone a la tensión aplicada cuando el motor está girando debido a esta tensión aplicada. Por lo tanto, un motor parado sólo se parece a una resistencia. A medida que el motor se acelera, esa resistencia sigue ahí, pero se le aplica menos tensión, lo que hace que consuma menos corriente.

Servomotor arduino

Todo el mundo que trabaja en control de movimiento tiene una historia de guerra; ya sea la máquina que dejó de funcionar misteriosamente o el motor que no dejaba de vibrar. Esta inmersión en el ruido de los servomotores es parte de una serie que se centra en los problemas de control de movimiento con los que te puedes encontrar y te proporciona algo de munición para luchar en la buena batalla y conseguir que tu proyecto de diseño y desarrollo de máquinas vuelva a estar en marcha.

Un servoeje ruidoso o con chirridos es quizás el problema de movimiento más común que los ingenieros encuentran cuando construyen su máquina basada en motores de CC con o sin escobillas. Esto no sólo es molesto, sino que puede causar un mayor desgaste del motor y de los mecanismos posteriores. El problema puede producirse tanto cuando el servomotor mantiene la posición como cuando se mueve, aunque la característica del sonido puede ser diferente para cada una de estas condiciones.

El comportamiento de los sistemas que utilizan un bucle de servo para controlar la posición del motor está dominado por los ajustes de los parámetros de sintonización. La mayoría de los ingenieros utilizan el siempre popular lazo PID (proporcional, integral, derivativo) para controlar su sistema, y se ha escrito mucho sobre cómo afinar los PID, incluyendo algunos artículos de Performance Motion Devices (PMD). La figura siguiente muestra el flujo de control de un típico lazo PID de posición.

Servo posición de retención arduino

He estado tratando de controlar mis 2 servomotores a través del monitor serial. Cuando introduzco los números 1-5 en el monitor de serie sigue el comando como se indica en el código. Escribo los números 1-5 un par de veces y los servos de repente se paran y ya no puedo introducir nada en el monitor serie. Funcionaba bien cuando sólo tenía la parte de avance del código.

Creo que sucede por la comunicación Serial. El Serial a 9600 BAUD es MUY LENTO y se para el servidor. Prueba a quitar las impresiones de Serial, si se sigue congelando entonces el problema es otro.

Acerca del autor

admin

Ver todos los artículos