【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机

这篇具有很好参考价值的文章主要介绍了【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.电机为什么需要驱动板呢?为什么不能用控制器直接控制电机呢?

2.H桥电路介绍

3.L298N原理介绍

4.实物接线图

5.CUBEMX配置

6.代码

7. 演示视频


L298N是常用来驱动小型直流有刷电机(两个)和步进电机(一个)的电机驱动板,其电路原理就是两个H桥电路,控制原理是使用PWM来实现对直流电机的调速,因此需要先补充一下对PWM的知识,可以跳转到以下链接。

【STM32】PWM输出功能详细介绍

【STM32】HAL库PWM实现呼吸灯实验

1.电机为什么需要驱动板呢?为什么不能用控制器直接控制电机呢?

原因是控制器本身提供的电压不足以让电机运动,因此需要外接一个驱动板来驱动电机运动。

用STM32作为控制器,L298N作为驱动器来驱动小马达(直流有刷电机)的原理图如下:

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

2.H桥电路介绍

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

对于需要驱动直流电机这种电流较大负载的控制电路,H桥是最经典的,因其电路形状像字母“H”,故称其为“H桥”。H桥一般由四个MOS管(Q1、Q2、Q3、Q4)作为独立控制的开关元器件组成,不同的开关状态对应的电机状态如下表所示:

电机状态

开关状态

正转

Q1、Q4开,Q2、Q3关

反转

Q1、Q4关,Q2、Q3开

停止

Q1、Q3关,Q2、Q4开

通常对H桥的控制最常用的是脉冲宽度调制(PWM)。

3.L298N原理介绍

L298N内部电路图如下图所示:

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

不难看出,其内部电路是由两个H桥组成。ENA和ENB为使能信号,In1和In2为一组逻辑信号,控制OUT1和OUT2这一组输出信号;In3和In4为一组逻辑信号,控制OUT3和OUT4这一组输出信号。通过控制逻辑信号来实现对输出信号的控制,比如电机速度和正反转。

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

(1)输出A和输出B用来接两个直流有刷电机,对于逻辑输入,应当接在控制板上。In1和In2控制输出A,In3和In4控制输出B。通道使能的跳线帽默认插在上面,保持不动。如果拔掉,认为不使能。

(2)对于板载5V使能处的跳线帽,若插在上面,则5V供电可以用来给控制板供电;如果拔掉,才能用来对驱动板实现5V供电。

(3)供电问题:输入电源为7~12V时,5V供电处可以接控制板,用来给控制板供电,也可以不接;输入电源为大于12V时,需要拔掉电源旁的跳线帽(板载5V使能),5V供电处需要接入5V的电压。

4.实物接线图

通过对L298N原理分析,不难得出逻辑信号接控制板,输出信号接电机。注意:控制板和驱动板要实现共地,目的是使电压有参考电平。

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

使用两节3.7V电池来供电,电池正极接在+12V供电,负极接GND。使用的控制板是正点原子的探索者,主控芯片是STM32F407ZGT6。因为使用一个马达,故只需要一组控制信号控制一路输出即可。因此,In1和In2接在控制板的PA0和PA6引脚,OUT1接马达的两根线。因为,控制板自带供电,所以不需要控制板提供5V供电,所以只需要将控制板和驱动板的GND连接在一起,给其一个参考电平。

控制问题:

电机状态

IN1

IN2

正转

1

0

反转

0

1

停止

等待

0

0

刹车

1

1

5.CUBEMX配置

(1)使能外部高速时钟

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

(2)完成时钟树配置

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

(3)设置PWM(也可以在TIM2中开启两个通道)

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

(4)生成代码(GENERATE CODE)

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机,STM32,PWM输出功能,单片机,嵌入式硬件,stm32

6.代码

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  MX_TIM3_Init();
  /* USER CODE BEGIN 2 */
  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {		
	__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,5000);
	HAL_Delay(2000);
	__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,0);
	HAL_Delay(1000);//慢速正转2秒,等待1秒
	__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,20000);
	HAL_Delay(2000);
	__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,0);
	HAL_Delay(1000);//快速反转2秒,等待1秒
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

7. 演示视频

STM32控制L298N驱动小马达文章来源地址https://www.toymoban.com/news/detail-597308.html

到了这里,关于【STM32】cubeMX配置HAL库驱动L298N控制直流有刷电机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • L298N驱动俩路电机按键控制正反转

    一个L298N是带有俩路驱动电路的,就是可以驱动俩个电机同时去转动,在硬件部分因为以前弄小车的时候已经组装好了,一路驱动去控制俩个电机,俩路驱动就是控制四个电机,做的是四轮四驱的小车,嫌麻烦就没有去拆改装了。 博主主页里面有介绍过L298N的使用了,为了避

    2024年02月03日
    浏览(33)
  • 直流减速编码电机的使用(STM32f103c8t6)L298N电机驱动模块

    直接减速电机就是在直流电机上加上霍尔编码器,霍尔编码器可用于电机转动的测速,A、B相会产生相位相差90°的方波信号。stm32可以使用硬件资源或者软件模拟来捕获编码器信号。这里我介绍的是stm32自带的编码器模式来使用直流减速电机。 以下是直流减速电机的商品图 ​

    2024年02月13日
    浏览(61)
  • Arduino驱动L298N控制直流电机的正反转和调速

    本模块使用ST公司的L298N作为主驱动芯片,具有驱动能力强,发热量低,抗干扰能力强的特点。LN298N可以用来驱动直流电机和步进电机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响下允许或禁止器件工作有一个逻辑电源

    2024年02月06日
    浏览(45)
  • ESP32设备驱动-直流电机与L298N电机驱动器

    在本文中,我们将介绍如何使用ESP32通过L298N电机驱动器驱动直流电机。 L298N 电机驱动器模块非常易于与微控制器一起使用,而且相对便宜。 它被广泛用于控制机器人,因为我们可以一次连接多达四个电机,但如果我们还想控制速度和方向,那么它允许连接两个电机。 因此,

    2024年02月13日
    浏览(44)
  • 一起玩儿物联网人工智能小车(ESP32)——12. 组装L298N驱动马达和供电电路

    摘要:本文介绍L298N模块与TT马达以及电源模块的接线方法,并进行初始测试。 在前面完成了第一个ESP32程序。接下来要继续组装我们的智能物联网小车了。今天要完成的工作就是完成智能小车电机驱动和ESP32开发板的控制电路连接。在具体的动手之前,先要进行一些准备工作

    2024年02月02日
    浏览(52)
  • L298N驱动电机+pwm

    目录 一、L298N驱动电机 二、pwm波输出——电机转动 pwm参数 pwm参数计算 输出比较 pwm基本结构:运行控制 → 时基单元 →捕获/输出比较通道 时基单元 捕获/输出通道的输出 STM32F103c8t6定时器:TIM1、TIM2、TIM3、TIM4 基本定时器 通用定时器 PWM输出  L298N驱动 :输入:12V 12V供电 :

    2023年04月19日
    浏览(35)
  • L298N 直流电机驱动模块与 Arduino

    原文地址 L298N 电机驱动器可以控制两个直流电机的速度和旋转方向。 此外,它还可以控制双极步进电机,例如NEMA 17。如果您想了解更多信息,请查看本教程。 L298N电机驱动器和Arduino控制步进电机:Control Stepper Motor with L298N Motor Driver Arduino (lastminuteengineers.com) 只有当我们可以

    2024年02月02日
    浏览(45)
  • L298N双路电机驱动模块使用指南

    哦吼,这个模块上手很快!!! L298N,是一款接受高电压的电机驱动器,直流电机和步进电机都可以驱动。一片驱动芯片可同时控制两个直流减速电机做不同动作,在6V到46V的电压范围内,提供2安培的电流,并且具有过热自断和反馈检测功能,可对电机进行直接控制,通过主

    2024年02月07日
    浏览(40)
  • L298N电机驱动板的使用说明

    目录 一、为什么要用L298N驱动板来驱动电机 二、L298N引脚功能图 三、供电方式 1、接入5V电源 2、接入7~12V电源 3、接入大于12V电源 四、L298N的驱动方式 你可能有这个疑惑,电机是4-6V供电的,单片机的输出也是5V输出,为什么不直接用单片机来供电驱动电机呢?这是因为单片机

    2024年02月02日
    浏览(31)
  • l298n电机驱动模块驱动直流电机(佛科院——深夜学习)

    目录 一、为什么不能直接用单片机IO口驱动电机,要用电机驱动模块? 二、使用步骤: 1.L298n各引脚作用: 2.推荐的供电方式: 3.推荐的控制方式: 由于单片机内部结构原因,其等效内阻极大, 导致输出电流极小,尽管I0口输出高电平为5V,但输出功率极小,无法满足直接电机

    2023年04月23日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包