树莓派 3 + L298N模块控制直流电机
1、树莓派 3Pin引脚二、硬件连接连接原理图:
三、程序
# -*- coding: utf-8 -*- #通过声明可以在程序中书写中文
import RPi.GPIO as GPIO #引入RPi.GPIO库函数命名为GPIO
import time #引入计时time函数
# BOARD编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD) #将GPIO编程方式设置为BOARD模式
#接口定义
INT1 = 11 #将L298 INT1口连接到树莓派Pin11
INT2 = 12 #将L298 INT2口连接到树莓派Pin12
INT3 = 13 #将L298 INT3口连接到树莓派Pin13
INT4 = 15 #将L298 INT4口连接到树莓派Pin15
#输出模式
GPIO.setup(INT1,GPIO.OUT)
GPIO.setup(INT2,GPIO.OUT)
GPIO.setup(INT3,GPIO.OUT)
GPIO.setup(INT4,GPIO.OUT)
GPIO.output(INT1,GPIO.HIGH)
GPIO.output(INT2,GPIO.LOW)
GPIO.output(INT3,GPIO.HIGH)
GPIO.output(INT4,GPIO.LOW)
四、控制电机转速
单片机或树莓派一般使用L298n 模块来驱动电机 。L298N的实物图如下# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
INT1 = 20
INT2 = 21
INT3 = 23
INT4 = 24
ENA = 16
ENB = 18
GPIO.setup(INT1,GPIO.OUT)
GPIO.setup(INT2,GPIO.OUT)
GPIO.setup(INT3,GPIO.OUT)
GPIO.setup(INT4,GPIO.OUT)
GPIO.setup(ENA,GPIO.OUT)
GPIO.setup(ENB,GPIO.OUT)
pwma = GPIO.PWM(16,80)
pwmb = GPIO.PWM(18,80)
pwma.start(90)#dc为占空比 0-100
pwmb.start(90)
GPIO.output(INT1,GPIO.HIGH)
GPIO.output(INT2,GPIO.LOW)
GPIO.output(INT3,GPIO.LOW)
GPIO.output(INT4,GPIO.HIGH)
while 1:
pwma.ChangeDutyCycle(90)# 单位 Hz 更改占空比0-100
pwmb.ChangeDutyCycle(90)
time.sleep(3)
pwma.ChangeDutyCycle(50)
pwmb.ChangeDutyCycle(50)
time.sleep(3)
看到标题我就兴奋,好想自己弄一下 楼主强大,多谢分享。 树莓派充电宝供电,同时连接L298的5V输入,模块不会烧毁吗?
页:
[1]