Entonces, por favor, perdónenme por la ingenuidad que ciertamente voy a exhibir aquí. Soy principalmente un tipo de software, por lo que este proyecto está un poco fuera de mi zona de confort. Sin embargo:
Me han dado un script de Python que envía comandos a una placa Arduino, que a su vez hace funcionar un servomotor, girando una placa a la que está conectado.
Cuando ejecuto este script, se supone que la placa debe hacer 1 rotación completa.
El motor no gira. El script funciona y el Arduino obtiene los comandos adecuados, pero la placa simplemente se sienta. Este es el flujo de trabajo esperado:
Este es el único flujo de trabajo en el que puedo trabajar:
No hay nada que obstruya el motor o la placa. Esta configuración exacta supuestamente ha funcionado en el pasado. Debido a que no tengo mucha experiencia con Arduinos y servos, me resulta difícil señalar dónde comenzar a depurar este problema. Cualquier ayuda o sugerencia sería muy apreciada.
Aproximadamente una de cada 5 veces (20%), simplemente funcionará. Sin empujar ni pinchar; simplemente se cierra a la velocidad y gira.
Aproximadamente una vez cada 50 veces (2%), no se moverá en absoluto, ni siquiera al empujarlo. Esto, sin embargo, podría ser un problema con la comunicación script/Arduino.
Primero, déjame decirte que no proporcionaste suficiente información para saber con certeza cuál es la causa del problema. No es gran cosa, realmente, excepto que debes entender que mi respuesta puede no ser 100% correcta.
El enlace al sitio web de Hobbico no da mucha información sobre ese servo. Creo que dice que extraerá 0,7 amperios cuando funcione sin carga. Si este es el caso, puede suponer que en el arranque o con una carga (también conocida como placa) consumirá más de 0,7 amperios. Esta cantidad de corriente no me parece alta, dado el gran tamaño del servo.
Lo que no sabemos es cuánto más de 0,7 amperios consume el servo. Una buena conjetura es, "mucho más de 0,3 amperios más". Lo que esto significa es que probablemente esté consumiendo más corriente de la que puede proporcionar la fuente de alimentación de 1 amperio.
Hay varias cosas que pueden suceder cuando el servo intenta consumir más energía de la que está disponible. Lo más probable es que una o más de estas cosas estén sucediendo:
La forma sencilla de ver si algo de esto está sucediendo es colocar un o-scopio en la salida de la fuente de alimentación. Mientras tiene el o-scopio fuera, también podría mirar otras señales, como las señales que van al servo. También puede probar con una fuente de alimentación diferente, más potente, pero que es menos informativa.
Hace muchos años, integré un circuito 555 para controlar un servo estándar de Tower Hobbies. En condiciones normales, el servo consumía unos 250 mA en movimiento. Cuando "zumbaba" (inestable), generaba picos de medio amperio y más.
Lo que aprendí: 1. Los servos consumen mucho jugo para girar el eje a través del tren de engranajes. Nunca consideraría conducir un servo estándar desde una fuente de alimentación que no pudiera entregar al menos 1 amperio continuo POR SERVO. 2. Los servos ponen MUCHA basura en sus cables de alimentación. Nunca consideraría conducir un servo estándar sin colocar aproximadamente 250 uF en los cables de suministro, en CADA servo, para inundar la basura (y suministrar la corriente de entrada de arranque).
Los servos con los que he tratado estaban contentos con suministros de 5 V.
Mirando la hoja de datos de Hobbico, como dijo el otro tipo, su servo quiere 700 mA (0.7 A) en movimiento continuo sin carga. Eso es aproximadamente tres veces lo que quiere un servo estándar. Su suministro está clasificado para 1 A. Mi instinto es que su fuente de alimentación no es lo suficientemente fuerte como para suministrar la corriente de entrada del servo y mantener feliz a la placa del procesador. Si su sistema funciona con un suministro de 5 V, cambiaría ese suministro de 6 V, 1 A por un suministro lineal de 5 V, 3 A. (Esos solían estar disponibles casi gratis.) Como mínimo, pondría varios cientos de uF a través de los cables de alimentación del servo.
Kellenjb
Patricio Perini
Kellenjb
Patricio Perini
ilmari karonen
Juan R. Strohm
Bryan Boettcher