您的位置:首页 > 编程语言 > Python开发

树莓派 驱动步进电机 python版

2017-05-20 22:52 267 查看
#!/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()  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: