零基础STM32单片机编程入门(三十一) 直流有刷电机驱动实战及源码

一.概要

有刷直流电机是一种直流电机,有刷电机的定子上安装有固定的主磁极和电刷,转子上安装有电枢绕组和换向器。直流电源的电能通过电刷和换向器进入电枢绕组,产生电枢电流,电枢电流产生的磁场与主磁场相互作用产生电磁转矩,使电机旋转带动负载。
直流有刷电机(Brushed Dc motor)具有结构简单、易于控制、成本低等特点, 在一些功能简单的应用场合,或者说在能够满足必要的性能、低成本和足够的可靠性的前提下,直流有刷电机往往是一个很好的选择。 例如便宜的电子玩具、各种风扇和汽车的电动后视镜等。
基本的直流有刷电机在电源和电机之间只需要两根电缆,这样就可以节省配线和连接器所需的空间,并降低电缆和连接器的成本。此外,还可以使用MOSFET/IGBT开关对直流有刷电机进行控制,给电机提供足够好的性能的同时,整个电机控制系统也会比较便宜,直流有刷电机转速快、扭矩小,在某些应用中可能无法满足要求。

在这里插入图片描述
本文介绍了有刷直流电机,以及有刷直流电机驱动芯片L9110,以及用STM32单片机实现有刷直流电机旋转。

在这里插入图片描述

二.直流有刷电机介绍

直流有刷电机(BDC)在允许范围内,供电即可工作,只需要调整电压即可改变转速,具有良好的调速性能。
在这里插入图片描述

型号:RF-300微型直流电机

标准使用条件:
1.额定电压:5.0VDC
2.使用电压范围:1.0-5.0VDC
3.转动方向:电源正极接红点端子,负极接另一端子,从轴伸端看,电机应顺时针旋转(CW)。
4.使用温度范围:-5~50℃。

电气特性:
1.空载电流:40mAmax
2.空载转速:7700+5%rpm
3.堵死电流:0.5Amax
4.绝缘阻抗:1.0MQ(min),电机接线端子与外壳间加DC100V电压。

机械特性:
1.外部特征:外观检查无明显变形及表面缺陷(如锈蚀等)。
2.轴向间隙:0.05~0.20mm。
3.径向跳动:0.03mm(max),距机壳端面5mm处测量。
4.重量:约22g
5.机械噪声:45dBmax

三.H桥驱动直流有刷电机正反转原理

H桥可控制电机的运动和正反转,H桥式电机驱动电路包括4个三极管和一个电机。 要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。

当Q1和Q4导通时,电流将经过Q1从左往右流过电机,在经过Q4流到电源负极,这时图中电机可以顺时针转动。
在这里插入图片描述

当Q3和Q2导通时,电流将经过Q3从右往左流过电机,在经过Q2流到电源负极,这时图中电机可以逆时针转动。
在这里插入图片描述

四.直流有刷驱动板芯片L9110介绍

L9110是为消费类产品,玩具和其他低压或者电池供电的运动控制类应用提供了一个集成的电机驱动器解决方案。此器件能够驱动一个直流有刷电机,由一个内部电荷泵生成所需的栅极驱动电压电路和4个功率NMOS组成H桥驱动,集成了电机正转/反转/停止/刹车四个功能。

L9110功能框图
在这里插入图片描述
在这里插入图片描述

基本工作模式

a)待机状态
在待机状态下, INA=INB=L。包括驱动功率管在内的所有内部电路都处于关断状态。电路消耗极低 的电流。此时马达输出端OUTA 和OUTB 都为高阻状态。
b)正转模式
正转模式的定义为: INA=H,INB= L, 此时马达驱动端OUTA 输出高电平,马达驱动端OUTB 输出 低电平时,马达驱动电流从OUTA 流入马达,从OUTB 流到地端,此时马达的转动定义为正转模式。
c)反转模式
反转模式的定义为: INA=L,INB= H, 此时马达驱动端OUTB 输出高电平,马达驱动端OUTA 输出 低电平时,马达驱动电流从OUTB 流入马达,从OUTA 流到地端,此时马达的转动定义为反转模式。
d)刹车模式
刹车模式的定义为: INA=H,INB=H ,此时马达驱动端OUTA 以及OUTB 都输出低电平,马达内存储的能量将通过OUTA 端NMOS 管或者OUTB 端NMOS 快速释放,马达在短时间内就会停止转动。
注意在刹车模式下电路将消耗静态功耗。

五.直流有刷电机驱动板介绍及原理图

驱动板能驱动两个直流有刷电机,因为上面有两颗L9110芯片。
在这里插入图片描述

板子原理图
在这里插入图片描述

六.STM32单片机驱动直流有刷电机正反转实验

用4根杜邦线把模块与开发板相连
板子3.3----模块VCC
板子A0-----模块A-1A
板子A1-----模块A-1B
板子G------模块GND
电机的两根线连接到 L9110 两路电机驱动板的绿端子处(MOTOR A )

在这里插入图片描述

打开STM32CubeMX软件,新建工程
在这里插入图片描述
Part Number处输入STM32F103C8,再双击就创建新的工程
在这里插入图片描述
配置下载口引脚
在这里插入图片描述
配置外部晶振引脚
在这里插入图片描述
配置GPIO输出
在这里插入图片描述

配置系统主频
在这里插入图片描述
配置工程文件名,保存路径,KEIL5工程输出方式
在这里插入图片描述
生成工程
在这里插入图片描述
用Keil5打开工程
在这里插入图片描述
添加代码

在这里插入图片描述

主要程序:

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();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);//正转
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);	
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET);		
		HAL_Delay(10000);
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);//反转
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);	
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET);
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET);	
		HAL_Delay(10000);		
  }
  /* USER CODE END 3 */
}

七.CubeMX工程源代码下载

通过百度网盘分享的文件:31.直流有刷双电机正反转.rar
链接:https://pan.baidu.com/s/1SbHUl_Ip_9Sjp_ACD4MBoA
提取码:lhi1

如果链接失效,可以联系博主给最新链接
程序下载下来之后解压就行
CSDN代码

八.小结

步进电机应用非常广泛,例如便宜的电子玩具、各种风扇和汽车的电动后视镜等。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值