teddy2017 发表于 2017-7-9 17:54:56

让你的马达动起来 RaspberryPI Control Motor with Python

让你的马达动起来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 timedelay=2 #delay 2ms pin_4 = 4pin_17 = 17pin_23 = 23pin_24 = 24GPIO.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高低电平切换,但是也足够你来调试一会了,注意一定要设置延迟时间。关注树莓派的奇幻之旅获得更多内容:


页: [1]
查看完整版本: 让你的马达动起来 RaspberryPI Control Motor with Python