让你的马达动起来 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高低电平切换,但是也足够你来调试一会了,注意一定要设置延迟时间。 关注树莓派的奇幻之旅获得更多内容:
|