12V El motor paso a paso no funciona: vibra pero no gira

1

Estoy trabajando en un proyecto y, desafortunadamente, mi motor de CC no funciona. Lo conecté como esto , estoy usando un motor nuevo (SP BN2A en este documento, lo saqué de un bidet que tenía en casa), alimentando todo el sistema con una alimentación de CC suministro para poder controlar el voltaje exactamente, usando Raspberry Pi como el controlador y usando el siguiente código:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

enable_pin = 5
coil_A_1_pin = 26
coil_A_2_pin = 19
coil_B_1_pin = 6
coil_B_2_pin = 13

GPIO.setup(enable_pin, GPIO.OUT)
GPIO.setup(coil_A_1_pin, GPIO.OUT)
GPIO.setup(coil_A_2_pin, GPIO.OUT)
GPIO.setup(coil_B_1_pin, GPIO.OUT)
GPIO.setup(coil_B_2_pin, GPIO.OUT)

GPIO.output(enable_pin, 1)

def forward(delay, steps):  
  for i in range(0, steps):
    setStep(1, 0, 1, 0)
    time.sleep(delay)
    setStep(0, 1, 1, 0)
    time.sleep(delay)
    setStep(0, 1, 0, 1)
    time.sleep(delay)
    setStep(1, 0, 0, 1)
    time.sleep(delay)

def backwards(delay, steps):  
  for i in range(0, steps):
    setStep(1, 0, 0, 1)
    time.sleep(delay)
    setStep(0, 1, 0, 1)
    time.sleep(delay)
    setStep(0, 1, 1, 0)
    time.sleep(delay)
    setStep(1, 0, 1, 0)
    time.sleep(delay)


def setStep(w1, w2, w3, w4):
  GPIO.output(coil_A_1_pin, w1)
  GPIO.output(coil_A_2_pin, w2)
  GPIO.output(coil_B_1_pin, w3)
  GPIO.output(coil_B_2_pin, w4)

while True:
  delay = raw_input("Delay between steps (milliseconds)?")
  steps = raw_input("How many steps forward? ")
  forward(int(delay) / 1000.0, int(steps))
  steps = raw_input("How many steps backwards? ")
  backwards(int(delay) / 1000.0, int(steps))

El motor vibra y se calienta cuando enciendo el sistema y ejecuto el código, pero no gira. ¿Qué parte de mi sistema está mal? ¿Es el hardware del motor, el cableado, el código, la fuente de alimentación o algo más?

Gracias, se agradece toda la ayuda.

    
pregunta NeonCop

1 respuesta

1

¡Finalmente lo descubrí! Sustituí el motor unipolar por uno bipolar, ¡y todo el sistema funcionó perfectamente como está! Para usar el motor unipolar, es necesario usar un IC de accionamiento del motor específicamente para el motor unipolar, y el L293D no cumple con la tarea.

    
respondido por el NeonCop

Lea otras preguntas en las etiquetas