提问者:小点点

带ULN2003驱动器的步进电机仅振动,不转动


我已经试着让步进电机工作了一个多星期了。它已经有一段时间没有响应我的python脚本了。

当我刚买的步进电机一切工作正常,我有零问题。现在,几周后,它似乎没有回应。ULN2003板上的灯正在点亮,但电机本身并没有转动,只是在振动。这让我认为这是一个电线或脚本的问题,但看起来不像。我尝试了一些其他的脚本,并更改了几次电线,但没有用。

这是用于工作的代码:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)


# 7=A, 11=B, 13=C, 15=D 
control_pins = [7,11,13,15] 

while 1:
  for pin in control_pins:
    GPIO.setup(pin, GPIO.OUT)
    GPIO.output(pin, 0)

  halfstep_seq = [
    [1,0,0,0], # Step 1
    [1,1,0,0], # Step 2
    [0,1,0,0], # Step 3
    [0,1,1,0], # Step 4
    [0,0,1,0], # Step 5
    [0,0,1,1], # Step 6
    [0,0,0,1], # Step 7
    [1,0,0,1]  # Step 8
  ]

  for i in range(512):
    for halfstep in range(8):
      for pin in range(4):
        GPIO.output(control_pins[pin], halfstep_seq[halfstep][pin])
      time.sleep(0.001)

是的,我知道GPIO。cleanup()应该在那里。我故意删除了它,以便循环继续运行。这样,我就更容易发现任何错误,而不是电机只做一圈,每次都停止。

老实说,我希望电机会因为某种原因坏了。不知道怎么回事,也不知道是什么时候,但它可能撞到了里面打破马达的东西。

如果有经验丰富的人能告诉我在这种情况下该怎么办,请帮助我。


共1个答案

匿名用户

因此,我的猜测是,您使用的步进时间(睡眠时间)太短,在您尝试将电机驱动到下一个位置之前,电机没有足够的时间转到新位置。实际上,该程序正在超越电机的能力。可能是电机中的物理轴承已轻微退化,或者驱动电路无法驱动电机,使其变得更硬(电压/功率低于工作时的电压/功率)。电机的技术规格是否提供了可以驱动的最大理论转速?它是否提供了最短的步进时间或类似的信息来指导这一点?

顺便说一句,如果你说有东西崩溃了,提供堆栈跟踪或其他错误输出非常有帮助,这样人们就可以试着帮助理解为什么和什么不起作用。