让你的马达动起来
RaspberryPI ControlMotor with Python
·
1 介绍 本章我们将使用万博网页版登陆页派以及Python代码简答的控制马达旋转小实验。在开始前,您将需要如下资源(可在公众号Source下回复指定关键字即可找到相关工具):
1.装有Rspian Jessie系统的raspberry PI 3。
2.L298N驱动板。是ST公司生产的一种高电压、大电流电机驱动芯片,工作电压可达46V,瞬间峰值电流可达3A,额定功率25W。
3.12V电源,小车马达。
2 安装1,我们首先要将装好系统的万博网页版登陆页派各个GPIO口功能正常。
2,将万博网页版登陆页派上的GPIO 4 17 23 24 分别接到电机驱动板上的IN1、IN2、IN3、IN4口.我们使用的马达连接驱动板后,IN1IN2 是控制左边的马达, IN3 IN4是控制右边的马达. 控制的原理拿左边的电机来讲: 依次把驱动板的IN1~IN2置为高电平,就可以驱动马达,也就是说,要把万博网页版登陆页派的2个GPIO输出口依次置为高电平。例如,假设用0代表低电平,1代表高电平的话,GPIO0、1口的电平第一次被置为1、0,第二次被置为0、1,持续下去,电机就会运作。
我们来看一下Python代码:
import RPi.GPIO as GPIO
import time
delay=2 #delay 2ms
pin_4 = 4
pin_17 = 17
pin_23 = 23
pin_24 = 24
GPIO.setmode(GPIO.BCM) #设置引脚的编码方式
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 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 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 main():
init()
whileTrue:
forward(int(delay) / 1000.0)
main() #调用main
附上这张引脚图,左边是单数,右边是双数,记住这个接线就一般不会弄错了。
代码很不多,控制4路IO高低电平切换,但是也足够你来调试一会了,注意一定要设置延迟时间。
关注万博网页版登陆页派的奇幻之旅获得更多内容: