树莓派 驱动步进电机 python版

来源:互联网 发布:知否的作者 编辑:程序博客网 时间:2024/06/04 18:11
#!/usr/bin/env python  
#########################################################  
#   File name: stepMotor.py  
#      Author: Jason Dai  
#        Date: 2015/01/26  
#########################################################  
import RPi.GPIO as GPIO  
import time  
  
IN1 = 5
IN2 = 6  
IN3 = 13  
IN4 = 19  
  


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, 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 backward(delay, steps):    
    for i in range(0, steps):  
        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 setup():  
    GPIO.setwarnings(False)  
    GPIO.setmode(GPIO.BCM)       # 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.002, 512)  # 512 steps --- 360 angle  
          
        print "stop..."  
        stop()                 # stop  
        time.sleep(1)          # sleep 3s  
          
        print "forward..."  
        forward(0.003, 512)  
          
        print "stop..."  
        stop()  
        time.sleep(1)  
  
def destroy():  
    GPIO.cleanup()             # Release resource  
  
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()  
原创粉丝点击