步进电机与ULN2003驱动器只振动,不转动

2024-04-24 17:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经试着让步进电机工作一个多星期了。它已经有一段时间没有响应我的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文件()应该在里面。我故意删除了它,这样循环就可以继续运行了。这样,我更容易发现任何错误,而不是电机只是做一圈,每次停止。你知道吗

我真的以为马达会因为某种原因坏掉。不知道是怎么回事,也不知道什么时候,但它可能撞到了什么东西,把里面的马达弄坏了。你知道吗

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


Tags: inimport脚本foroutputgpiotimestep
1条回答
网友
1楼 · 发布于 2024-04-24 17:22:18

所以我的猜测是,你使用的步进时间(睡眠时间)太短了,在你试图驱动它到下一个位置之前,马达没有足够的时间转到新的位置。有效地说,这个程序正在超越马达的能力。可能是电机中的物理轴承已轻微退化,或者驱动电路无法驱动电机(比工作时的电压/功率低)。电机的技术规格是否提供了可以驱动的最大理论转速?它是否提供了一个最短的步进时间或类似的信息,可以指导这一点?你知道吗

另一方面,如果你说某个东西崩溃了,那么提供堆栈跟踪或其他错误输出是非常有帮助的,这样人们就可以试着帮助理解为什么和什么东西不起作用。你知道吗

相关问题 更多 >