树莓派无法驱动步进电机

vdoc 2020-04-242246 次点击
树莓派通过驱动板驱动步进电机,电机不转?

驱动板正负极接24V电源,A+,A-,B+,B-分别接红蓝、黑绿四根线。此处的接线根据短接以后旋转步进电机丝杆是否有阻尼判断。

控制方面,将脉冲+,方向+,使能+统一通过面包版接到树莓派的5V端口,即物理引脚为2的端口;之后脉冲-接到BCM的26端口(物理端口37),方向-接到BCM的19端口(物理端口35),使能-不接。如图2,3

代码:
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(19, GPIO.OUT)
GPIO.setup(26, GPIO.OUT)
GPIO.setup(19, 0)
p = GPIO.PWM(26, 1000)
n=0
while True:
print(n)
n+=1;
p.start(50)
time.sleep(1)
p.ChangeDutyCycle(50)
p.ChangeFrequency(1000)
time.sleep(10)
p.stop()
time.sleep(1)
if(n>1000):
break
GPIO.cleanup


目前的问题是步进电机不转,只会发出声音。来来回回捣弄了一下午,还请有懂的朋友帮忙看一下。
收藏 ♥ 感谢
Spoony 小组长 2020-04-25 
如果驱动板是ULN2003A,参考这个
https://blog.csdn.net/jcdjx/article/details/43152337
小狼 25cm 2020-04-27  ♥ 1
你这个用的是TB6600一类的驱动器吧。共阳或共阴的接法,都是驱动器的接法。
步进电机只能发出声音,说明是你细分数和脉冲不对。

import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
stepApul = 20 # 电机频率
stepAdir = 21 # 电机方向
GPIO.setup(stepApul, GPIO.OUT)
GPIO.setup(stepAdir, GPIO.OUT)

while True:
GPIO.output(stepAdir, GPIO.HIGH)
GPIO.output(stepApul, GPIO.HIGH)
time.sleep(0.005)
GPIO.output(stepApul, GPIO.LOW)
time.sleep(0.005)

试试这个代码,注意把端口换一下。基于BCM引脚号

登录注册 后可回复。




› 相关内容关注微信公众号