树莓派4B:控制步进电机
文章目录准备阶段接线阶段树莓派程序准备阶段准备以下物品,淘宝都可以买到:57步进电机电源开关(220v转24v,3A,72W)步进电机驱动器电源线电线杜邦线树莓派4B一套具体型号如下:接线阶段整体:接线效果如下图电源开关起220v转24v作用,很好接线,输出24v接入步进电机驱动器步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说...
记录一下驱动两相四线步进电机的过程
文章目录
准备阶段
准备以下物品,淘宝都可以买到:
57步进电机(两相四线)
电源开关(220v转24v,3A,72W)
步进电机驱动器 (TB6600)
电源线
电线
杜邦线
树莓派4B一套
具体型号如下:
接线阶段
整体:接线效果如下图
电源开关起220v转24v作用,就是一般电源开关的接线方法,输出24v接入步进电机驱动器
步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说颜色和A+A-B+B-的对应关系,按提示接线,没有的话问卖家或者查型号。 DIR-DIR+PUL-PUL+分别接到树莓派GPIO引脚15 13 18 16。
代码用2相励磁方式驱动,下面直接给了运行代码,GPIO和驱动的连接直接规定了,其中的两相四线步进电机驱动的方式原理和代码以后再记录吧
这里要注意树莓派B版本(不是B+)的板子,只有26Pin,物理引脚BOARD编码<=26才可以用。下图是40Pin引脚图(兼容26Pin的B版本)。观察方向为引脚那部分在板子的右上方。
树莓派python程序
# 树莓派python程序中不能出现汉字,需要把注释中的汉字换成英文
import RPi.GPIO as GPIO
import time
# 规定GPIO引脚
IN1 = 18 # 接PUL-
IN2 = 16 # 接PUL+
IN3 = 15 # 接DIR-
IN4 = 13 # 接DIR+
def setStep(w1, w2, w3, w4):
GPIO.output(IN1, w1)
GPIO.output(IN2, w2)
GPIO.output(IN3, w3)
GPIO.output(IN4, w4)
def stop():
setStep(0, 0, 0, 0)
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 backward(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 setup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO.setup(IN1, GPIO.OUT) # Set pin's mode is output
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
def loop():
while True:
print ("backward...")
backward(0.0001, 1000) # 发射脉冲时间间隔0.0001(单位秒) 脉冲个数1000
print ("stop...")
stop() # stop
time.sleep(3) # sleep 3s
print ("forward...")
forward(0.0001, 1000)
print ("stop...")
stop()
time.sleep(3)
def destroy():
GPIO.cleanup() # 释放数据
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child function destroy() will be executed.
destroy()
之后插上电,步进电机驱动器和电源开关 灯亮。
之后cd
到工作路径,python ***.py
步进电机按照要求动起来了
OK了。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)