前言
测试步进电机
设备
| 名称 | 型号 |
|---|---|
| 树莓派 | 3B+ |
| 步进电机 | 28BYJ-48-5V![]() |
| 步进电机驱动板 | UL2003芯片驱动板![]() |
连接
树莓派3B+ GPIO引脚图可在此文章中查看: 树莓派 亮灯 笔记
步进电机插入驱动板
驱动板VCC接树莓派5V
驱动板GND接树莓派GND
驱动板INA接树莓派20
驱动板INB接树莓派26
驱动板INC接树莓派16
驱动板IND接树莓派19

源码
import RPi.GPIO as GPIO
import time
#BCM 对应 GPIO numbers , BOARD 对应 physical numbers。
GPIO.setmode(GPIO.BCM)
delay=2 #delay 2ms
pin_4= 20
pin_17 = 26
pin_23 = 16
pin_24 = 19
def init():
GPIO.setwarnings(False)
GPIO.setup(pin_4, GPIO.OUT)
GPIO.setup(pin_17, GPIO.OUT)
GPIO.setup(pin_23, GPIO.OUT)
GPIO.setup(pin_24, GPIO.OUT)
def setStep(w1, w2, w3, w4):
GPIO.output(pin_4, w1)
GPIO.output(pin_17, w2)
GPIO.output(pin_23, w3)
GPIO.output(pin_24, w4)
# 逆时针
def back(delay):
setStep(0, 0, 0, 1)
time.sleep(delay)
setStep(0, 0, 1, 0)
time.sleep(delay)
setStep(0, 1, 0, 0)
time.sleep(delay)
setStep(1, 0, 0, 0)
time.sleep(delay)
# 顺时针
def forward(delay):
setStep(1, 0, 0, 0)
time.sleep(delay)
setStep(0, 1, 0, 0)
time.sleep(delay)
setStep(0, 0, 1, 0)
time.sleep(delay)
setStep(0, 0, 0, 1)
time.sleep(delay)
def main():
init()
while True:
# forward(int(delay) / 1000.0)
back(int(delay) / 1000.0)
main() # 调用main
本文介绍了如何使用树莓派3B+通过UL2003驱动板控制28BYJ-48-5V步进电机。详细阐述了设备连接步骤,包括GPIO引脚配置,并提供了Python源码实现步进电机的正反转。通过设置不同GPIO引脚状态,实现了电机的精确转动控制。


947

被折叠的 条评论
为什么被折叠?



