2. 电机驱动原理:直流电机与无刷电机简介、H桥电路原理、电机调速的基本方法

大家好,我是你们的老朋友。今天咱们聊聊电机驱动的基础。说实话,我入行那会儿,第一个搞定的项目就是直流电机调速。那时候经验少,烧了好几个MOS管才摸到门道。嗯,这些坑咱们后面慢慢聊。

2.1 直流电机与无刷电机:先认识一下两位主角

电机这东西,说白了就是把电能转成机械能。咱们做嵌入式控制的,最常打交道的就是直流电机和无刷电机。

直流电机(有刷电机),结构简单,两根线一接电源就转。你给它正电压,它正转;反电压,它就反转。我最早做小车底盘时用的就是这种,控制起来特别直接。

它的内部有电刷和换向器。电刷磨损是个大问题。我在一个工业项目里见过,连续跑2000小时,电刷磨得只剩一半。所以现在很多场合都换无刷了。

无刷电机(BLDC),没有电刷,靠电子换向。它有三根线,需要专门的控制器来驱动。你想想看,没有物理接触,寿命自然长得多。我做过一个无人机项目,无刷电机连续飞了上百个起落,一点问题没有。

两者对比,我习惯用这个表格来记:

特性 直流有刷电机 无刷电机(BLDC)
控制方式 直接通直流电 需要电子换向器
寿命 较短(电刷磨损) 长(无磨损)
噪音 较大(电刷摩擦)
成本 较高
典型应用 玩具、简单调速 无人机、电动车
我的小建议: 如果项目对成本敏感、控制简单,直流有刷电机够用了。但要是追求长寿命、低噪音,别犹豫,上无刷。

2.2 H桥电路原理:让电机正反转的秘诀

直流电机怎么实现正反转?你可能会说,把电源线反接不就行了?没错,但咱们做嵌入式系统的,总不能用手去拧线吧。这时候就需要H桥电路了。

H桥,名字很形象。四个开关管(通常是MOS管)摆成H形,电机在中间横杠上。通过控制四个管的通断,就能改变电流方向。

我画个简化的逻辑给你看:

// H桥控制逻辑(伪代码)
// Q1: 左上角 MOS管
// Q2: 右上角 MOS管
// Q3: 左下角 MOS管
// Q4: 右下角 MOS管

// 正转:Q1和Q4导通
Q1 = ON;  Q2 = OFF;
Q3 = OFF; Q4 = ON;

// 反转:Q2和Q3导通
Q1 = OFF; Q2 = ON;
Q3 = ON;  Q4 = OFF;

// 刹车:Q1和Q3导通(或Q2和Q4导通)
Q1 = ON;  Q2 = OFF;
Q3 = ON;  Q4 = OFF;

// 滑行:全部关断
Q1 = OFF; Q2 = OFF;
Q3 = OFF; Q4 = OFF;
注意! 我曾经犯过一个低级错误:四个管同时导通了。结果就是电源直接短路,MOS管瞬间冒烟。这叫“直通”或“穿通”,是H桥设计的大忌。一定要加死区时间,确保上下管不会同时导通。

实际项目中,我一般用集成H桥芯片,比如L298N、DRV8833。自己搭分立元件的话,驱动电路和死区控制要格外小心。

2.3 电机调速的基本方法:从PWM到闭环控制

电机调速,最直接的方法就是调电压。但咱们做数字控制的,不可能用可调电阻。所以PWM(脉宽调制)就成了首选。

PWM调速的原理,说白了就是快速开关电源。占空比高,平均电压高,电机转得快;占空比低,转得慢。频率一般选在1kHz到20kHz之间。我习惯用10kHz,人耳听不到噪音,MOS管开关损耗也适中。

举个例子,你用STM32输出PWM:

// STM32 PWM配置示例(HAL库)
// 定时器TIM2,通道1输出PWM
// 频率10kHz,占空比50%

TIM_HandleTypeDef htim2;
TIM_OC_InitTypeDef sConfigOC = {0};

htim2.Instance = TIM2;
htim2.Init.Prescaler = 72-1;        // 72MHz / 72 = 1MHz
htim2.Init.Period = 100-1;          // 1MHz / 100 = 10kHz
HAL_TIM_PWM_Init(&htim2);

sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 50;               // 占空比 50%
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);

HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

你看,代码很简单。但实际调试时,你会发现电机低速时抖动厉害。为什么?因为PWM频率太低,或者死区时间没处理好。

除了开环PWM,还有更高级的调速方法:

  • 电压调速:最简单,但负载变化时转速不稳。
  • 电流调速:控制力矩,适合需要恒力矩的场合。
  • 速度闭环(PID):加编码器测速,实时调整PWM。我做过一个AGV小车项目,用PID控制后,速度误差控制在±1%以内。

避坑指南: 我曾经在一个项目中,直接用PWM驱动电机,没加任何滤波。结果电机噪音大得吓人,还干扰了旁边的传感器。后来在电机两端并联了一个0.1μF的电容,问题就解决了。嗯,小细节往往决定成败。

好了,这一章就聊到这儿。直流电机和无刷电机各有千秋,H桥是控制正反转的核心,PWM是调速的利器。下一章咱们深入讲讲PWM的调制策略,看看怎么让电机跑得更稳、更高效。