无刷直流电机介绍及单片机控制实例

  • 前言
  • 基本概念
  • 优势与劣势
  • 使用寿命
  • 基本结构
  • 使用单片机控制实例
    • 电子调速器(ESC)
    • Arduino BLDC电机控制电路图
    • 代码

前言

在机器人的结构中,往往电机是必不可少的组成部分,例如地面智能车中的轮子驱动,空中无人机的动力部分。电机往往是产生运动动力的直接来源,而无刷直流电机(Brushless Direct Current Motor)是应用最为广范的。

本篇博客主要描述了无刷直流电机的基本概念、结构、优劣势并且在最后展示了一个单片机(Arduino )控制无刷直流电机旋转的实例。

基本概念

无刷直流电机,英语缩写为BLDC(Brushless Direct Current Motor)。电机的定子是线圈,或者叫绕组。转子是永磁体,就是磁铁 。根据转子的位置,利用单片机来控制每个线圈的通电,使线圈产生的磁场变化,从而不断在前面勾引转子让转子转动,这就是无刷直流电机的转动原理。

在无人机上用的多为这种,即外为转子,内为定子。

优势与劣势

优势

  • 无电刷、低干扰
    无刷电机去除了电刷,最直接的变化就是没有了有刷电机运转时产生的电火花,这样就极大减少了电火花对遥控无线电设备的干扰。

  • 噪音低,运转顺畅
    无刷电机没有了电刷,运转时摩擦力大大减小,运行顺畅,噪音会低许多,这个优点对于模型运行稳定性是一个巨大的支持。

  • 寿命长,低维护成本
    少了电刷,无刷电机的磨损主要是在轴承上了,从机械角度看,无刷电机几乎是一种免维护的电动机了,必要的时候,只需做一些除尘维护即可。

劣势

  • 有刷电机低速扭力性能优异、转矩大等性能特点是无刷电机不可替代的

使用寿命

无刷电机通常使用寿命在几万小时这个数量级

使用寿命有三个因素:

  • 轴承寿命
    一旦轴承损坏需要更换轴承

  • 磁钢退磁
    这种很少见

  • 线圈问题
    求线圈的温度不应过高,并确保良好的散热,从而延长其使用寿命

基本结构

无刷直流电机的基本结构主要为:定子和转子

定子:定子铁芯就是由硅钢片叠压而成,内圆表面开有槽,用于布置定子绕组,定子绕组:若干线圈。

转子

从转子基本结构上分,无刷直流电机可分为:

  • 内转子型(Inner Rotor)
  • 外转子型(Outer Rotor)

主要看转子(永磁铁)是在内部还是在外部

内转子结构更紧凑,散热更好一点,外转子的转动惯量更大一点,主要是运用在比较匀速的运动,硬盘,打印机,风扇等。内转子水泵,电钻,等快速变换的应用。

所以在智能车的轮子,无人机上的电机,都是外转子型。

下面是拆了一个无人机上的电机的实物图,来看具体的转子和定子。[无刷电机怎么拆:把下面的卡扣拆开,用力把转子从上面拔下来]

使用单片机控制实例

电子调速器(ESC)

说到对于无刷直流电机的控制,不得不提到电子调速器(ESC),简称电调。如下图所示

每台BLDC电机都需要某种控制器,以将来自电池的DC电压转换为脉冲以为电机的相线供电。该控制器称为ESC,它表示电子速度控制器。控制器的主要职责是按顺序向BLDC电机的相线通电,以使电机旋转。这是通过感测每条导线的反电动势并在磁铁穿过线圈时准确地为线圈通电来完成的。

电调主要完成两个功能:

  • 速度控制
  • 电池消除

速度控制:ESC可以通过读取橙色线上提供的PWM信号来控制BLDC电机的速度。它的工作原理与伺服电机非常相似,所提供的PWM信号的周期应为20ms,并且可以改变占空比以改变BLDC电机的速度。由于相同的逻辑也适用于伺服电动机来控制位置,因此可以在Arduino程序中使用相同的伺服库。

电池消除器电路(BEC) :几乎所有ESC都带有电池消除器电路。顾名思义,该电路消除了微控制器需要单独的电池的麻烦,在这种情况下,我们不需要单独的电源来为Arduino供电。ESC本身将提供可调节的+ 5V电压,可为单片机供电。通常有多种类型的电路可调节此电压,在便宜的ESC上将是线性调节,也可以找到带有开关电路的电路。

Arduino BLDC电机控制电路图


BLDC电机与Arduino接口的连接非常简单。ESC需要至少12V和5A左右的电源。
使用锂电池为ESC供电。ESC的三相线应与电机的三相线连接,无连接顺序,可以任意顺序连接。在电机的转向与希望的转向不一致时,可以任意更换其中的两根线即可。

ESC本身的**BEC(电池消除器电路)**将调节+ 5V,可用于为Arduino板供电。最后,为了设置BLDC电机的速度,使用了电位计,该电位计连接到Arduino的A0引脚。

实物连接如下:

代码

代码主要功能
创建一个PWM信号,其占空比从0%到100%不等,频率为50Hz。
通过使用电位计来控制占空比,以便可以控制电动机的速度。
使用来自Arduino的伺服库,产生PWM信号。

#include <Servo.h> //Use the Servo librarey for generating PWM
Servo ESC; //name the servo object, here ESCvoid setup()
{ESC.attach(9); //Generate PWM in pin 9 of Arduino
}void loop()
{int throttle = analogRead(A0); //Read the voltage from POT
throttle = map(throttle, 0, 1023, 0, 180); //Map the values of 0-102 from pot to 0-180 bcs servo works only from 0-180
ESC.write(throttle); //based on the value of throttle generate PWM signal
}

效果:电机转起来了

无刷直流电机介绍及单片机控制实例相关推荐

  1. 无刷直流电机自适应模糊PID控制及仿真

    1.内容简介 247 2.内容说明 针对iECar永磁无刷直流电机转速 PID 控制精度低.控制不稳定和响应滞后等缺点,介绍了一种具有智能性质的自适应模糊 PID控制器设计思路,提出了一种模糊控制器量 ...

  2. 【市场趋势】专为无刷直流电机设计的单片机现世!取代有刷已成大势?

    在节能减排已经成为消费者的新需求时,各种工业企业也开始了转型,配合国家的政策向节能减排发展.在动力部分,要想配合节能减排的方针政策,主要就是提高技术,选择适合的电机,那么什么电机既能满足生产需求又能做 ...

  3. 无刷直流电机的无位置传感器控制学习笔记

    BLDC与PMSM关系 关于这个问题,很多人不太注意,我见过很多人把无刷直流电机和永磁同步电机不区分,以至于出现了正弦波无刷直流电机这样的叫法.实际上,在学校里面学习的时候,这个还是区分开的.一般把梯 ...

  4. Arduino基础篇(九)-- 无刷直流电机转速和方向控制

    本文选择Arduino MEGA 2560开发板做调试,通过调整PWM的占空比,控制BLDC3525,内置有感有霍尔驱动,实现对无刷直流电机的转速控制,通过调整数字口输出高低电平,从而实现电机方向控制 ...

  5. 【2022项目复盘】无位置传感器的无刷直流电机驱动设计

    目录 概述 BLDC发展 历史 现状 未来前景 工作原理 BLDC结构 六步法 启动方式 转子预定位 转子的同步加速 切入转子正常旋转程序 反电动势检测法 硬件设计 控制模块最小系统 三相逆变器电路及 ...

  6. 无刷直流电机及其控制策略

    2020-09-14 无刷直流电机及其控制策略(学习笔记) 传统无刷直流电机安装的霍尔传感器增加了电机的体积和成本.可靠性低.抗干扰能力弱.因此提出了无刷直流电机无位置传感器控制策略,解决了传递霍尔传 ...

  7. 三相无刷直流电机的控制设计(一)基本硬件电路设计

    文章目录 前言 一.三相无刷电机简要介绍 1.1电机原理 2.2使用电机 二.硬件设计 1.驱动芯片选择 2.电路设计 2.1电机桥电路 2.2光耦隔离电路 2.2霍尔采集电路 总结 前言 三相无刷直 ...

  8. matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究

    摘要: 基于Matlab/Simulink,本文设计了一个无刷直流电机的控制方案,详细阐述了无刷直流电机的运行原理,并用Matlab/Simulink对其进行了仿真.实验证明,用Matlab/Simu ...

  9. STC单片机驱动BLDC无刷直流电机(无HALL)官方示例

    STC单片机驱动BLDC无刷直流电机(无HALL)官方示例 示例代码在STC8系列文档第20章里面:http://www.stcmcudata.com/STC8F-DATASHEET/STC8H.pd ...

最新文章

  1. matlab中的mkdir函数_科学网—Matlab中计算函数运行时间的三种方法及判断新建文件夹 - 张伟的博文...
  2. Resultset获取行数和列数
  3. JSON入门基础知识
  4. Jmeter CSV 参数化/检查点/断言
  5. C++中如何初始化类中const或引用类型的数据成员?
  6. iOS Newsstand Tutorial
  7. Android之View绘制流程开胃菜---setContentView(...)详细分析
  8. mysql服务器默认操作字符集,如何在mysql中找到默认服务器字符集?
  9. jquery click点击事件重复执行多次
  10. slub分配流程-kmem_cache_alloc函数
  11. Linux内核部件分析 记录生命周期的kref
  12. 拓扑排序那点事(vector+priority_queue)
  13. 【路径规划】基于matlab遗传算法求解同时取送货车辆路径问题【含Matlab源码 1072期】
  14. 信息学奥赛一本通1032
  15. tp5.1语言包Lang使用,详解
  16. 云原生存储和云存储有什么区别?
  17. Sublime中文显示乱码
  18. Python爬虫爬取链家租房信息(python大作业)
  19. 苹果Mac隐藏壁纸在哪里?Mac隐藏壁纸查找教程
  20. 美团外卖开放平台对接经验总结(一)

热门文章

  1. 基于Multisim14的四路计分抢答器
  2. NOI2004郁闷的出纳员题解
  3. android gis采集,Android GIS数据采集软件介绍 ---穆采
  4. 编程题003--合并二叉树--niuke
  5. PCL库学习笔记(PCL Visualizer)
  6. 实验三:数据预处理1
  7. 原来是这就是笔杆子工作部署对偶金句,100例年度工作部署对偶金句
  8. “S“型曲线加减速在42步进电机的位置控制和速度控制中的交叉应用
  9. 价廉物美的三维克莱因瓶(Klein Bottle)
  10. python淘宝爬虫登陆功能和下单功能_Python爬虫实战五之模拟登录淘宝并获取所有订单 | 静觅...