物联网AI MicroPython传感器学习 之 L298电机驱动模块
万物简单数智社区 2024-06-14 15:31:01 阅读 53
学物联网,来万物简单IoT物联网!!
一、产品简介
L298N是意法半导体(ST Semiconductor)集团旗下量产的一种双路全桥式电机驱动芯片,拥有工作电压高、输出电流大、驱动能力强、发热量低、抗干扰能力强等特点,通常用来驱动继电器、螺线管、电磁阀、直流电机以及步进电机。
L298N可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。
L298N 采用Multiwatt 15封装,N是L298的封装标识符。如图是市面上较为常见的一款L298N驱动模块。其中黑色的直立芯片就是 L298N 。并且配备了散热器,其可以用于大功率场景。
市面上也有一些采用其他封装的模块,采用更小体积的封装模式,以应对更小功率需求的场景。其引脚定义都大致相同。
引脚定义
VCC:驱动电源正(在图示模块中可使用5V或12V)GND:驱动电源地Out1 Out2 Out3 Out4:功率输出IN1 IN2 IN3 IN4:逻辑控制ENA:IN1 & IN2 使能(TTL高电平使能)ENB:IN3 & IN4 使能(TTL高电平使能)其中 ENA 和 ENB 在部分模组中可能未透出给开发者,此时它们默认连接至芯片内部的VDD,即默认使能。
二、技术参数
驱动部分端子供电范围 Vs:5V~ 35V驱动部分峰值电流 lo:2A逻辑部分端子供电范围 Vss:5V~7V(板内取电+5V)逻辑部分工作电流范围:0 ~ 36mA控制信号输入电压范围:低电平:-0.3VsVin≤1.5V
高电平:2.3VsVinsVss使能信号输入电压范围:
低电平:-0.3svin≤1.5V(控制信号无效)
高电平:2.3VsvinsVss(控制信号有效)最/大功耗:20W(温度T=75°C时)储存温度:-25°C~+130°C驱动板尺寸:48mm _ 43mm _ 33mm
三、软件接口
L298DC - 创建直流电机驱动对象
函数原型参数说明L298DCObj = L298DC(Intx:PWM, Intx:PWM, en=None, freq=50)
该方法初始化一个 L298DC 对象,用于直流电机控制。其使用L298的单侧资源,即 ENA,IN1,IN2 以控制 OUT1, OUT2;或使用 ENB,IN3,IN4 以控制 OUT3, OUT4。
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
Intx | PWM | 是 | IN1或IN3引脚的PWM对象。传入PWM对象 |
Intx | PWM | 是 | IN2或IN4引脚的PWM对象。传入PWM对象 |
en | PWM | 否 | ENA或ENB引脚的PWM对象。传入PWM对象。若该入参不被指定,则默认对应的控制引脚已被使能。 |
freq | int | 否 | PWM驱动频率。默认为50Hz。开发者可以改变此值以寻找最佳的驱动效果。 |
若L298DC对象创建成功,返回L298DC对象;否则抛出Exception
示例代码
from machine import PWM, Pinfrom l298 import L298DCin1 = PWM(Pin(2))in2 = PWM(Pin(4))ena = PWM(Pin(16))wheel = L298DC(in1,in2,ena,100)
run(rate) - 驱动电机以指定速度转动
函数功能:驱动电机以rate指定速度转动。其中,rate指定的是电机最大功率的百分比。例如当rate=50时,电机以50%最大功率转动。(因此,对于普通的直流电机而言,并不能严格控制转速)
函数原型:
参数说明:L298DC.run(rate:int)
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
rate | int | 是 | 范围从-100度到+100。rate指定的是电机最大功率的百分比。例如当rate=50时,电机以50%最大功率转动。当rate>0时,电机正转;当rate<0时,电机反转。 |
无
stop() - 电机停转
函数功能:电机停转
函数原型:
参数说明:L298DC.stop()
无
返回值:
无
enable() - 使能驱动
函数功能:使能驱动。仅在指定en引脚时,该函数有效。
函数原型:
参数说明:L298DC.enable()
无
返回值:
无
disable() - 去使能驱动
函数功能:去使能驱动。仅在指定en引脚时,该函数有效。
函数原型:
参数说明:L298DC.disable()
无
返回值:
无
四、接口案例
案例代码from machine import PWM, Pinfrom l298 import L298DC# 初始化左轮驱动in1 = PWM(Pin(2))in2 = PWM(Pin(4))ena = PWM(Pin(16))wheelLeft = L298DC(in1,in2,ena,100)# 初始化右轮驱动in3 = PWM(Pin(2))in4 = PWM(Pin(4))enb = PWM(Pin(16))wheelRight = L298DC(in3,in4,enb,100)# 全速前进wheelLeft.run(100)wheelRight.run(100)utime.sleep(10)# 右转wheelLeft.run(100)wheelRight.run(50)utime.sleep(10)# 后退wheelLeft.run(-50)wheelRight.run(-50)utime.sleep(10)# 原地旋转wheelLeft.run(-50)wheelRight.run(50)utime.sleep(10)# 停车wheelLeft.stop()wheelRight.stop()
五、工作原理
L298的控制信号
ENA | IN1 | IN2 | 行为 |
---|---|---|---|
0 | x | x | 电机关闭 |
1 | 0 | 1 | 电机正转 |
1 | 0 | 0 | 电机制动 |
1 | 1 | 0 | 电机反转 |
1 | 1 | 1 | 电机制动 |
参考文献及购买链接
[1] L298电机驱动单元购买链接
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。