1.材料:樹莓派4B、28byj步進電機、步進電機驅動(ULN2003),杜邦線若幹(雙母頭)

2.接線,給驅動闆供電5—12v,IN1,IN2,IN3,IN4分别接樹莓派的24、23、22、27号引腳如下圖
3.代碼如下
setstep()也可根據上圖編寫。
import RPi.GPIO as GPIO
import time
IN1 = 24 #接驅動闆IN1
IN2 = 23 #接驅動闆IN2
IN3 = 22 #接驅動闆IN3
IN4 = 27 #接驅動闆IN4
def setStep(w1, w2, w3, w4):
GPIO.output(IN1, w1)
GPIO.output(IN2, w2)
GPIO.output(IN3, w3)
GPIO.output(IN4, w4)
def forward(delay=0.003, steps=100):
for i in range(0, steps):
setStep(0, 0, 1, 1)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(1, 1, 0, 0)
time.sleep(delay)
setStep(1, 0, 0,1)
time.sleep(delay)
def backward(delay=0.003, steps=100):
for i in range(0, steps):
setStep(1, 0, 0,1)
time.sleep(delay)
setStep(1, 1, 0, 0)
time.sleep(delay)
setStep(0, 1, 1, 0)
time.sleep(delay)
setStep(0, 0, 1, 1)
time.sleep(delay)
def setup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(IN1, GPIO.OUT)
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
def main():
forward(0.003,100)正轉90度左右,0.003改小就轉得快,太小就不轉了,100改大角度就大
time.sleep(1)#定時1秒
backward()
time.sleep(1)#定時1秒
def destroy():
GPIO.cleanup()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()
然後可以看到步進電機正轉90度停1秒,再反轉90度