树莓派 驱动步进电机 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()
#########################################################
# 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()
相关文章推荐
- 利用树莓派控制步进电机——Python语言
- 树莓派pca9685舵机驱动板python驱动
- 树莓派通过GPIO控制步进电机(python)
- MicroPython TPYBoard v102 驱动28BYJ-48步进电机
- DHT11温湿度传感器的树莓派3 python3驱动代码
- 树莓派驱动步进式电机python编程实现
- 基于S3C2440和linux的多路步进电机驱动设计
- python测试驱动开发
- ubuntu上安装python的mysql驱动 MySQLDb出现的问题
- 基于TQ2440的嵌入式linux步进电机驱动
- 树莓派+python做的智能远程控制原型
- 【连载】 FPGA Verilog HDL 系列实例--------步进电机驱动控制
- FPGA Verilog HDL 系列实例--------步进电机驱动控制
- 两相四线步进电机驱动代码
- 步进电机linux驱动
- 步进电机驱动方式总结
- linux步进电机驱动
- 步进电机工作原理 驱动 _28BYJ-48 以及程序实例下载
- 常见步进电机驱动芯片
- [笔记].小练Verilog版本PWM驱动步进电机