Estoy tratando de hacer que mi motor paso a paso gire 90 grados, se detenga por un segundo y repita estos pasos.
Tenga en cuenta que soy un principiante, pero he tomado cursos de física, por lo que entiendo la mayoría de los conceptos básicos de electrónica, como voltaje, amperaje, serie, paralelo, resistencia, etc.
Entonces, la forma en que estoy configurando esto es con una raspberry pi conectada a un controlador de motor paso a paso Pololu a4988 que emite 2 amperios con un enfriamiento óptimo y 12v, con un motor paso a paso bipolar que tiene una clasificación de 2/amperios por fase y está recibiendo 12v . Los motores están alimentados por una fuente de alimentación de 30 amperios y 12 voltios.
Todo está cableado de acuerdo con el diagrama adjunto y ha sido probado muchas veces. Se han utilizado muchos scripts diferentes, y actualmente estamos usando un script de Python del RPI que ejecuta 50 pasos (90 grados), luego espera un segundo. Este código funciona y es correcto, porque a veces funciona. Cuando está funcionando, el motor se calienta, pero no está caliente al tacto. Además, cuando está encendido pero no ejecuta el código, a veces zumba y hace clic, sin moverse. Las fuentes en línea dijeron que esto estaba bien.
Parece ser muy aleatorio cuando funciona y cuando no funciona, por ejemplo, al probar la corriente que pasa por uno de los cables de la bobina usando un multímetro conectado en serie, el motor funciona perfectamente, pero cuando no está el multímetro, el el motor se asusta, zumba y cambia de dirección erráticamente, una teoría mía sobre por qué esto se debe a la resistencia adicional, en cuyo caso poner una resistencia en serie puede solucionar el problema, pero no parece abordar la raíz de la cuestión.
Otras acciones tomadas: -Usar un arduino uno en lugar de Pi, los mismos problemas -Ejecutar el código de diferentes maneras, diferentes bibliotecas, etc. -Cambiar a un motor y un controlador diferentes. -re-cableado todo varias veces -ajustando el tornillo de control de voltaje en el controlador. -Proporcionó refrigeración adecuada a la fuente de alimentación y al controlador (2 ventiladores de computadora de 120 mil)
-- diseño de cableado
https://i.imgur.com/undefined.jpeg -- imagen de configuración
-- código utilizado
Cualquier ayuda o sugerencia sería muy apreciada, se han invertido demasiadas horas en esto. LMK si se necesita información adicional.
Varias posibilidades:
Puede intentar agregar demoras para obtener un ciclo de trabajo del 50% como lo sugiere jonk.
...
GPIO.salida(21,verdadero)
tiempo.reposo(0.01)
GPIO.salida(21,falso)
tiempo.reposo(0.01)
...
También puede intentar agregar rampas de aceleración y desaceleración a su código y usar una biblioteca Arduino que las admita (como AccelStepper).
Además, el cambio de contexto en Raspberry Pi provocará una falta de uniformidad en la sincronización del tren de impulsos escalonados, lo que se traduce en pedirle al motor que acelere y desacelere muy rápidamente, lo que puede exceder las capacidades de par del motor. El par del motor paso a paso generalmente cae con la velocidad de rotación, pero generalmente tiene una banda de resonancia donde el par cae casi a cero en un cierto rango de velocidad. Poner un volante en el eje (u otra carga con un poco de inercia angular) puede minimizar el efecto de resonancia.
Esto se hace eco de varias observaciones/sugerencias de otros, además de haber realizado un control paso a paso utilizando A4988 más de una vez, mi lista de lavandería (en orden) sería;
Transistor
broma
Transistor
glen_geek
jake chun
glen_geek
Pico de voltaje
OVNI