文章说明: 名词概念(为了方便易懂,我就通俗的表达): 逻辑电压:控制板子执行程序的电压。 驱动电压:输出口AB的电压。 逻辑电流:驱动板执行程序的电流。 驱动电流:输出口AB的电流。 本人调试此款L298N,只调试过3.3V(小于5v的驱动电压下面都统称小于5v),7.4v,12v,24v(大于5v的驱动电压都统称大于5v)这4个档位的电压,此外调试时没测试过电流大小,只知道L298N最大功率为25w,最大驱动电流为2A。 简单介绍L298N板载位置的各个名称 简单的端子和接口介绍: 一、12v供电: 理论上最高可以接入35v(没试过最低和最高的电压,此处是某宝卖家提供的参数),购买直流电机前,先看清楚直流电机的相关参数和性能,如果满足L298N的使用要求,再进行购买使用,否则容易烧毁L298N。 从12v供电口进去的电,就是输出AB口的电压。但在介绍板载5v跳帽时,会说明当输入电压小于5v和大于5v的情况。 二、供电GND: 顾名思义,接地线。但要注意的是,此处GND不但要接驱动电源的GND,如果是和别的单片机或者其他系统连接在一起的时候,一定要从这里再引出一根GND和单片机或者系统的GND相连。即整个系统的GND连接在一起,如果不连接在一起,电压没有参考电平,无法进行正常的控制。 三、5v供电: 这是一个特殊的端口。既可以做L298N的逻辑电压的输入,也可以做外部单片机或系统的5v供电口。具体切换在板载5v跳帽中介绍。 四、板载5v跳帽: 12v供电口接≥5V的电源电压时,板载5v跳帽不拔除,5v供电口有电压输出。数值具体大小自己用万用表测,反正当12v口接7.4v时,5v供电口是输出5v的。 12v供电口≤5v的电源电压时,板载5v跳帽需要拔除,因为L298N需要逻辑驱动电压来驱动板子。此时5v供电口就变成了L298N的逻辑电压供电的输入口。供电电压在3.3v -5v之间。 四、通道AB使能跳帽: 需要PWM控制就拔除,不需要PWM控制就不用拔除(老玩家就别管这句话了,就算不拔除也可以做到PWM调试的,应该懂的都懂)。 PWM控制对于电机而言表现出来现象的就是转速控制,在Arduino里用analogWrite(Pin,Value)语句来实现 [Pin(对应的针脚),Value(0-255之间的整型数字)] 五、逻辑输入: IN1和IN2为一组,对应OutA(输出A); IN3和IN4为一组,对应OutB(输出B)。 六、输出AB: 直接接相应的输出即可。 通道AB使能(AB两个跳帽一起拔除)拔除的Arduino代码: Right_motor = ; Right_motor_1 = ; ENA = ; setup(){ pinMode(Right_motor, OUTPUT); pinMode(Right_motor_1, OUTPUT); } Run_B(){ digitalWrite(Right_motor, HIGH); digitalWrite(Right_motor_1, LOW); analogWrite(ENA, ); } Stop(){ digitalWrite(Right_motor, HIGH); digitalWrite(Right_motor_1, LOW); analogWrite(ENA, ); } loop() { Run_B(); } 通道AB使能(AB两个跳帽一起不拔除)不拔除的Arduino代码: Right_motor = ; Right_motor_1 = ; setup(){ pinMode(Right_motor, OUTPUT); pinMode(Right_motor_1, OUTPUT); } Run_B(){ digitalWrite(Right_motor, HIGH); digitalWrite(Right_motor_1, LOW); } Stop(){ digitalWrite(Right_motor, LOW); digitalWrite(Right_motor_1, LOW); } loop() { Run_B(); } 不拔除AB使能跳帽,做到PWM调速: Right_motor = ; Right_motor_1 = ; setup(){ pinMode(Right_motor, OUTPUT); pinMode(Right_motor_1, OUTPUT); } Run_A( val){ analogWrite(Right_motor,val); analogWrite(Right_motor_1,); } Stop(){ analogWrite(Right_motor,); analogWrite(Right_motor_1,); } loop() { Run_A(); } L298N电机驱动的使用 万次阅读 2021-06-06 10:28:03 L298N电机驱动的使用 前言 一、介绍 L298N模块简介 接口介绍 二、使用步骤 1.声明部分 2.代码部分 硬件连接 软件部分 总结 前言 博主为某大学电气专业大学生,以学习为目的写下该文,内容主要为以51单片机为例简单介绍L298N电机驱动模块的使用。内容若有不适,欢迎指正、补充和联系。 提示:以下是本篇文章正文内容,下面案例可供参考 一、介绍 L298N模块简介 L298N直流步进电机驱动板模块,常用于智能小车的电机驱动,有红色版和绿色版,最大区别是绿色版多了个控制开关,以下皆以红色版为主展开。具有以下等特点: 1.使用L298N作为主驱动芯片,具有驱动能力强,发热量低,抗干扰能力强的特点。 2.本模块可以使用内置的78M05通过驱动电源部分取电工作,但是为了避免稳压芯片损坏,当大于12V驱动电压的时候,请使用外置的5V逻辑供电 3.本模块使用大容量滤波电容,续流保护二极管,可以提高可靠性。 接口介绍 如图,中间的三个接线端从左到右分别为VCC、GND、+5,其中VCC为12V供电,GND为供电地,+5为5V供电,接多少V的电压就给电机和驱动板供多少的电;左右两边的接线端分别为输出A和输出B;排针部分引脚分别为ENA、IN1、IN2、IN3、IN4、ENB,其中IN1~4为逻辑输入,常以单片机的逻辑电平3.3V或5V输入;ENA和ENB为PWM使能,已经默认被跳帽接到5V,注意不用PWM不上跳帽电机是不能转的,若要使用PWM调速可取下跳帽使用。 二、使用步骤 以51单片机为例: 硬件连接 将12V电源或5V电源通过杜邦线接到VCC或 +5 以及GND,两个电机(左电机和右电机)分别接到IN1、IN2或IN3、IN4两个输出端,将51单片机的P1.0、P1.1、P1.2、P1.3的4个针脚分别接到IN1、IN2、IN3、IN4。 软件部分 以51单片机为例代码如下: 1.声明部分#include //引脚为例,具体引脚可自选sbit IN1=P1^1; sbit IN2=P1^2; sbit IN3=P1^3; sbit IN3=P1^4; 2.代码部分 左右电机正转:IN1=1; IN2=0; IN3=1; IN4=0; 左右电机反转:IN1=0; IN2=1; IN3=0; IN4=1; 左电机正转,右电机反转:IN1=1; IN2=0; IN3=0; IN4=1; 左电机反转,右电机正转:IN1=0; IN2=1; IN3=1; IN4=0; 可将上述代码封装为C语言函数 ,非常方便使用。 总结 通过51单片机为例的实验,非常直观且简单的学习L298N模块的使用。L298N作为最基础的电机驱动模块,学会之后其他大多电机驱动也是能很快上手使用。 L298N介绍 及PWM调速原理 *星里于 2022-03-31 12:52:26 发布4351 收藏 24 文章标签: 嵌入式硬件 stm32 版权 1.L298N介绍 参数: 1、驱动芯片:L298N 双 H 桥直流电机驱动芯片 2、驱动部分端子供电范围 Vs:+5V~+35V ; 如需要板内取电,则供电范围 Vs:+7V~+35V 3.驱动部分峰值电流 Io:2A 4.逻辑部分端子供电范围 Vss:+5V~+7V(可板内取电+5V) 5.逻辑部分工作电流范围:0~36mA 6.控制信号输入电压范围:IN1 IN2 IN3 IN4 的io口拉高拉低的电压范围 低电平:-0.3V≤Vin≤1.5V 高电平:2.3V≤Vin≤Vss 7.使能信号输入电压范围:ENA ENB 即PWM的高低电平范围 低电平:-0.3≤Vin≤1.5V(控制信号无效) 高电平:2.3V≤Vin≤Vss(控制信号有效) 控制: 情况一 控制电机全速运动: 逻辑输入端IN1 IN2对应输出A口的逻辑 全速则不用拔去ENA的跳线帽,此时使能端为5V电机满占空比驱动,全速运行; 同理可知输入端IN3 IN4对应输出B口的逻辑 全速则不用拔去ENB的跳线帽。 在单片机里进行控制时将IN1 IN2 对应的IO口拉高和拉低,ENA始终于5V相连就可以简单的让电机全速转动 。 情况二 控制电机变速运动: 由于该驱动为 L298N 双 H 桥直流电机驱动芯片 1.什么是PWM https://blog.csdn.net/as480133937/article/details/103439546 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 pwm的频率: 是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期); 也就是说一秒钟PWM有多少个周期 单位: Hz 表示方式: 50Hz 100Hz pwm的周期: T=1/f 周期=1/频率 50Hz = 20ms 一个周期如果频率为50Hz ,也就是说一个周期是20ms 那么一秒钟就有 50次PWM周期 占空比: 是一个脉冲周期内,高电平的时间与整个周期时间的比例 单位: % (0%-100%) 表示方式:20% 周期: 一个脉冲信号的时间 1s内测周期次数等于频率 脉宽时间: 高电平时间 在STM32中如此: 以STM32F407ZGT6为例系统84MHz/自动重装载值=1Mhz 1MHZ/分频系数25000=40Hz 此时的40H这就是PWM的频率 //占空比的设定 通过修改比较值 比较值/分频系数 就为占空比 PWM原理 以单片机为例,我们知道,单片机的IO口输出的是数字信号,IO口只能输出高电平和低电平 假设高电平为5V 低电平则为0V 那么我们要输出不同的模拟电压,就要用到PWM,通过改变IO口输出的方波的占空比从而获得使用数字信号模拟成的模拟电压信号 我们知道,电压是以一种连接1或断开0的重复脉冲序列被夹到模拟负载上去的(例如LED灯,直流电机等),连接即是直流供电输出,断开即是直流供电断开。通过对连接和断开时间的控制,理论上来讲,可以输出任意不大于最大电压值(即0~5V之间任意大小)的模拟电压 比方说 占空比为50% 那就是高电平时间一半,低电平时间一半,在一定的频率下,就可以得到模拟的2.5V输出电压 那么75%的占空比 得到的电压就是3.75V 对此可以用平均值去理解50%的占空比对应到STM32的IO口上用万用表测量就为3.3/2左右 总结: PWM就是在合适的信号频率下,通过一个周期里改变占空比的方式来改变输出的有效电压 --------------------------------------------------------------------------------------------------------------------------------- 对应到L298N电机调速 或呼吸灯亮暗亮暗的变化也可以轻松理解,通俗来讲PWM就是通过修改占空比得到占空比对应的平均电压;他的高低电平变化只是微观情况,宏观上来说确实是对电压的积累。 转到L298NENA ENB 端口的PWM电压是微弱的无法直接改变电机转速所以别忘了他的名字L298N 双 H 桥直流电机驱动芯片 仔细观察黑色小块 就是MOS管,简单点来讲就是通过注入ENA ENB的pwm信号来控制MOS管的通断,进而可以修改12V电压的输出值,达到调速的目的。 |
|