El servomotor no gira

0

Soy nuevo en este tipo de proyectos y, en su mayoría, programo, por lo que no entiendo completamente las funciones, por lo que ayudaría si su respuesta fuera explicada en detalle.

En mi proyecto, tenemos un script de Python que envía comandos a adafruit que debería hacer girar el motor pero no lo hace. Las luces se encienden para que la placa base reciba la señal, y parece que obtiene la salida adecuada, pero todavía no se enciende.

  • Servo Motor 28BYJ-48
  • Fuente de alimentación: 4 X SOPORTE DE BATERÍA AA CON INTERRUPTOR DE ENCENDIDO / APAGADO
  • Controlador pwm / servo Adafruit de 16 canales y 12 bits con rasberry pi

"Las cuatro baterías se mantienen en serie, para una salida nominal de 6V DC para alcalinas (6.4V cuando están nuevas, 4V cuando están agotadas), y 4.8V DC para recargables (5.2V cuando están completamente cargadas, 4.4V cuando están descargadas) . El uso de recargables hará que esto funcione muy bien con casi cualquier proyecto de 5V, con alcalinas, es posible que desee poner un 1N4001 en serie para disminuir el voltaje de 6V a 5.3V. "

Usamos el siguiente código para intentar convertir el servo

import RPi.GPIO as GPIO
import time


GPIO.setmode(GPIO.BOARD)

ControlPin = [7, 11, 13, 15]

for pin in ControlPin:
    GPIO.setup(pin, GPIO.OUT)
    GPIO.output(pin, 0)

seq [[1,0,0,0],
    [1,1,0,0],
    [0,1,0,0],
    [0,1, 1,0],
    [0,0,1,0],
    [0,0,1,1],
    [0,0,0,1],
    [1,0,0,1]
]

for i in range (512):
    ### GO THROUGH THE SEQUENCE ONCE ####
    for halfstep in range(8):
        for pin in range(4):
            ###SET EACH PIN###
            GPIO.output(ControlPin[pin], seq[halfstep] [pin])
        time.sleep(.001)

GPIO.cleanup()

Todo el hardware parece estar correcto. Todo está conectado y se envía la señal, las luces se encienden. El servomotor simplemente no gira

    
pregunta HAMZAH AHMED

1 respuesta

4

Creo que el problema es que estás tratando de conducir un motor paso a paso con un controlador servo.

Un motor paso a paso se gira en pequeños pasos aplicando voltajes momentáneos a los diversos devanados. Los Steppers no "giran" cuando están activados, sino que dan un pequeño paso por cada fase activada. Además, los steppers no utilizan retroalimentación posicional (generalmente) porque el microcontrolador es responsable de contar el número de pasos para girar el motor a la posición deseada.

Los servomotores, por otro lado, son motores regulares que giran cuando los devanados están energizados. El controlador utiliza un indicador de retroalimentación posicional y algún tipo de algoritmo PID para suministrar cantidades variables de potencia a los devanados del motor, girándolo / parándolo en la posición deseada.

Parece que su código está dando los pasos para rotar un motor paso a paso, pero si está utilizando una placa Servo Driver, está diseñado para un tipo diferente de motor ... así que 1) no pasa nada, o 2) blanco El humo escapa a varios componentes que los hacen inoperables.

Buena suerte.

    
respondido por el Ryan Griggs

Lea otras preguntas en las etiquetas