树莓派——步进电机+驱动器 篇

硬件设备

树莓派 * 1

57H76两相四线步进电机 * 1

DM542驱动器 * 1

36V DC开关电源

3.3V-5V电平转换(驱动器输入需要5V脉冲,树莓派可控管脚输出电压不够)

 

接线

接线如下所示:

驱动器采用共阳极接法,树莓派5V管脚电平转换放大后接入驱动器PUL+,DIR+,ENA+。PUL-与26连接控制脉冲信号,, DIR-与19连接控制电机方向,ENA-与13连接控制电机使能,电位为1时电机被禁止,不受脉冲影响(树莓派BCM编码)

步进电机红绿黄蓝接线分别接驱动器的 A+ A- B+ B-
根据电机型号不同,接法也不同。只要找到两组同相,分别接 A+ A- B+ B-即可。
步进电机短接判断是否同相:将任意两条电机的接线短接,转动电机,有阻力时两根线为同相

 

代码实现

方法1:while循环 + time.sleep

步进电机的驱动很多文章使用while循环来控制电位高低,从而把握脉冲

import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)   
GPIO.setmode(GPIO.BCM) 
GPIO.setup(19,GPIO.OUT)
GPIO.setup(26,GPIO.OUT)
GPIO.output(19,False) 
n=0
while True:
    n=n+1
    time.sleep(0.0001)
    GPIO.output(26,False) 
    time.sleep(0.0001)
    GPIO.output(26,True) 
    print(n)
    if n==10000:
        break

方法2:采用pwm

更为推荐的做法是用GPIO的pwm功能 控制更为精准

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)

while True:
    p.start(100)
    time.sleep(1)
    p.ChangeDutyCycle(50)
    p.ChangeFrequency(1000)
    time.sleep(10)
    p.stop()
    time.sleep(10)

 

  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值