📚 本文是 「从 0 到 1 带你打电赛 · 小车电控篇」 系列(共 12 篇)第 4 篇。
📝 系列说明
这是「从0到1带你打电赛·小车电控篇」第四篇。前三篇我们聊了拿奖逻辑、赛题套路和整车框架,从这篇开始动真格——先把地基打牢。
你有没有遇到过这种情况:代码逻辑明明没问题,PID 也照着教程抄了,可车一上场要么嗡嗡乱叫不走直线,要么跑着跑着自己复位重启,再要么瓷砖地上飞快、一到赛场木地板就趴窝?
十有八九,问题不在你的算法,而在脚下这块”地基”——电机、驱动和电源。
这是赛后总结里被反复念叨的一句话:硬件不过关,软件再强也救不回来。控制算法是建在反馈信号和稳定供电之上的,地基一塌,上面盖得再漂亮也是空中楼阁。所以这一篇我们不碰高深的控制理论,专心把三件事讲透:电机怎么选、驱动怎么接、电源怎么供。
先认识小车的”肌肉”:电机怎么选
电机就是小车的肌肉。肌肉不行,神经系统(你的控制算法)指挥得再精妙也白搭。电赛小车上最常见的是两类带编码器的直流减速电机。
N20 和 GA12-N20:两个常客
N20 是最小巧的那一类,微型直流减速电机,适合轻量级小车。
- 额定 3-6V(工作范围 2-9V),体积小、重量轻
- 带霍尔编码器,电机轴典型 7 PPR(每转 7 个脉冲)
- 通常是 6 线制:电机两根(M+ / M-)、编码器供电两根(VCC / GND)、编码器信号两根(A / B 两相)
这里有个新手最容易接错的地方:编码器的供电(3.3-5V 逻辑电平)和电机的供电(走功率轨)是分开的两路,别图省事接到一起。
举个具体型号让你有数:Waveshare 那款 12V/200rpm 的 N20,减速比 1:150,电机轴 7 PPR,那么输出轴每圈就是 $7 \times 150 = 1050$ 个脉冲,再经过后面要讲的四倍频,每圈能数到 4200 个计数。这个分辨率对测速来说相当够用了。
GA12-N20 是它的”健身版”——同样是 12mm 直径,但换成了金属齿轮箱,更耐用、扭矩更大。
- 减速比可选范围极广,1:3 到 1:1000 都有,常用的是 1:30 / 1:50 / 1:100 / 1:150
- 拿 GA12-N20-0100 举例:DC 12V、空载 100rpm、负载 80rpm、额定力矩 2kg·cm、额定电流 300mA
- 同款电压下转速参考:6V 约 95rpm,3V 约 47rpm(基本随电压线性变化)
N20 塑齿轻便但扭矩弱,GA12 金属齿耐造扭矩大。需要爬坡、负载重、或者怕齿轮磨损的车,优先 GA12。
减速比怎么选:像自行车换挡
减速比这个参数最让人犯迷糊,其实一个比喻就懂了。
💡 减速比 = 自行车的变速挡位
大减速比 = 低速挡:蹬起来轻松(扭矩大),能爬坡,但跑不快; 小减速比 = 高速挡:平路飞快(转速高),但起步费劲、爬坡没劲。
减速比越大,输出轴转速越低、扭矩越大,运转还越静音。
选型的思路是从你的目标反推,分两路算:
- 看顶速:目标线速度 = 轮子周长 × 输出轴每秒转数。先定下你想要的最大线速度(比如 1.5 m/s),再用轮径折算出需要的输出轴 rpm,倒推减速比。
- 看扭矩:车有多重、要不要爬坡、起步要不要猛,决定了你需要多大扭矩。负载重、要爬坡就往大减速比走。
⚠️ 减速比是个权衡,两头都别走极端
比太小:转速够了但扭矩不足,爬不动坡、起步无力; 比太大:扭矩管够但顶速上不去,到了拼用时的发挥部分就吃亏。 实在拿不准,宁可让动力留点余量——下面那个”瓷砖地能跑、木地板趴窝”的惨案,根子就是动力没余量。
编码器:电机的”码表”,靠它测速
编码器是装在电机尾部的转速传感器,相当于自行车的码表。它输出 A、B 两相方波,相位差 90°。我们用 STM32 定时器的编码器模式来读它,并且做正交四倍频。
四倍频是什么意思?AB 两相每个周期里有 4 个跳变沿(A 上升、B 上升、A 下降、B 下降),我们每个沿都数一次,分辨率就翻了 4 倍。所以:
$$\text{每圈计数} = \text{PPR} \times \text{减速比} \times 4$$
测速的办法很直接:在固定周期的定时器中断里,读一次 TIMx->CNT,算出这段时间里计数增加了多少(Δ脉冲),就是当前转速的反馈值。低速场景脉冲太少不准,可以用 M/T 法改进,但入门阶段固定周期测增量就够了。
🔥 一个真实的翻车案例:问题根本不在软件
某队省赛失利。车在实验室瓷砖地上能跑到 2m/s,一到赛场木地板就跑不起来,十字路口冲不出去。队员死磕软件、反复改 PID,毫无效果。
最后扒出来的根因是机械:连接杆插得太紧,产生了过盈摩擦;电机没固定牢,一跑起来就抖。结果编码器脉冲抖动严重,反馈信号全是噪声,PID 自然整不稳。
教训有三条,条条用血换的: 1. 软件很难弥补硬件短板,编码器的机械安装(同心、牢固、无过盈摩擦)是闭环精度的前提; 2. 一定要在比赛同款地面上调参,别只在瓷砖上测; 3. 选电机要给动力留余量,别按光滑地面的极限去卡。
来源:Tayoou 的调车总结
驱动芯片:给肌肉接上”功放”
MCU 的 GPIO 引脚只能输出几毫安的小电流,电机一启动就要几百毫安甚至几安培——直接连上去,引脚瞬间烧掉。中间必须有个”功率放大器”,这就是驱动芯片。
💡 驱动芯片像音响里的功放
你的手机(MCU)输出的是微弱的音频信号,推不动大音箱。中间要接一个功放(驱动芯片),把小信号放大成能推动音箱(电机)的大功率。功放的好坏,直接决定声音(动力)干不干净、够不够劲。
驱动芯片内部的核心结构是 H 桥——四个开关搭成的电路。
🧩 H 桥像四个开关搭的跷跷板
对角的两个开关闭合,电流从一个方向流过电机,正转;切换到另一对开关,电流反向,反转。靠”哪两个开关导通”来控制方向,靠”开关闭合时间的占比”来控制速度。
选型:按电机的堵转电流分档
选驱动芯片,最关键的指标是电机堵转电流(电机被卡死时的最大电流,远大于正常工作电流)。芯片的电流能力必须扛得住堵转,否则一卡就烧。下面这张表是电赛圈里的主流选择:
| 芯片 | 电压范围 | 电流能力 | 特点 | 适用场景 |
|---|---|---|---|---|
| TB6612FNG | VM 2.5~13.5V | 连续 1.2A / 峰值 3.2A | 双 H 桥 MOS,集成度高,自带过热/欠压保护 | 小电机、入门首选 |
| DRV8701 | 6.5~45V | 取决于外置 MOS | 栅极驱动 + 外置 4 颗 N-MOS,宽压免升压 | 大电流、大电机、智能车主流 |
| A4950 | 8~40V | 峰值 3.5A | 单 H 桥,两个电机要两片 | 中大电流 |
| DRV8833 | 2.7~10.8V | 1.5A RMS / 2A 峰值 | TB6612 平替,电流偏弱 | 小功率 |
| L298N | 3~48V | 连续 2A / 峰值 3A | BJT 老工艺,发热严重 | 不推荐 |
缺货时,国产的 GC8871、BDR 系列可以做 TB6612/同类的平替。
小电机选 TB6612,大电机选 DRV8701,这是两条最常走的路。下面分别说说它俩。
TB6612:小电机的省事之选
TB6612 把”指挥”和”开关”都集成在一颗芯片里,外围简单,特别适合 N20 这类小电机。引脚和真值表必须记牢:
- PWMA / PWMB:调速(接 PWM 信号)
- AIN1 / AIN2 / BIN1 / BIN2:控制方向
- STBY:待机脚,必须置高芯片才工作
- VM:电机电源;VCC:逻辑电源(2.7~5.5V)
真值表(以 A 通道为例):
| AIN1 | AIN2 | PWMA | 状态 |
|---|---|---|---|
| 1 | 0 | 给占空比 | 正转 |
| 0 | 1 | 给占空比 | 反转 |
| 0 | 0 | — | 短路刹车(急停) |
| 1 | 1 | — | 滑行(自由停) |
🔥 新手最常见的坑:只给方向不给 PWM,电机纹丝不动
TB6612 的输出 AO1/AO2 必须有 PWM 输入才有效。很多人只接了 AIN1/AIN2 设好方向,PWM 占空比却忘了给(或者给了 0),然后对着不动的电机怀疑人生。记住:方向脚定方向,PWM 脚给动力,两者缺一不可。
顺带一个接地建议:GND 最好一路接电源地、一路接单片机地,做”单点共地”(后面电源章节细讲)。
下面是 STM32 HAL 库下 TB6612 调速 + 换向的核心代码,PWM 配成 24kHz:
// 占空比 = (Pulse+1)/(ARR+1)
// 72MHz 主频, Prescaler=2, ARR=999 -> PWM 频率 = 72M/3/1000 = 24kHz
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); // 启动 PWM 通道
// 设置转向:BIN1=1, BIN2=0 -> 正转
HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);
// 改占空比就是调速:pulse 越大越快(0 ~ ARR)
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, pulse);
代码思路参考 喵呜实验室的 TB6612 教程。
这里引出一个非常好用的编程抽象:带符号速度。我们希望上层 PID 算出一个数,正数就前进、负数就后退、绝对值就是快慢,不用每次都手动管方向。封装一下:
#define ARR_MAX 999 // 与 PWM 的 ARR 对应, 占空比上限
// speed: 带符号速度, 正前进负后退, 范围 [-ARR_MAX, ARR_MAX]
void Motor_SetSpeed(int16_t speed)
{
if (speed >= 0) {
// 正转
HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);
} else {
// 反转
HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_SET);
speed = -speed; // 取绝对值当占空比
}
if (speed > ARR_MAX) speed = ARR_MAX; // 输出限幅, 别超 ARR
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, speed);
}
方向 GPIO + 占空比 = 带符号速度,这个封装一做,后面写 PID 的人就只管甩一个数过来,世界清静了。
DRV8701:大电流场景的指挥官
当你用 RS380 这类大电机、或者要跑高速大扭矩时,TB6612 那点电流就不够看了。DRV8701 是另一种思路——它本身不直接驱动电机,而是一个”栅极驱动器”:
🧩 DRV8701 是指挥,MOS 是干活的大力士
TB6612 把指挥(控制逻辑)和小开关(MOS)都塞进一颗芯片,省事但电流小。DRV8701 只当”指挥官”,负责发号施令(驱动栅极),真正扛大电流的四颗 N 沟道 MOS 管放在芯片外面。开关分离出去,所以能扛远比集成芯片大的电流。
它的几个亮点:
- 宽压 6.5~45V,免升压:直接吃高压电池,不用额外的 BOOST 升压电路,也就避免了升压带来的干扰(不同手册标注略有出入,这里取保守的 6.5~45V)
- 内置电流采样,放大增益 $A_v = 20\,\text{V/V}$
- 定时关断斩波限流:能给电机设一个电流上限,堵转时自动斩波保护
- 支持 100% 占空比
它有两种工作模式,接线时要分清:
- E 型:PH/EN 模式。EN 进 PWM(调速),PH 给方向。一路 PWM 一路电平,省 IO。
- P 型:双 PWM 模式。IN1/IN2 各接一路 PWM。
斩波限流的电流上限怎么算:
$$I_{chop} = \frac{V_{REF}}{A_v \times R_{sense}}$$
其中 $A_v = 20\,\text{V/V}$ 是内部放大增益,$R_{sense}$ 是你外接的采样电阻,$V_{REF}$ 是你设的参考电压。
⚠️ DRV8701 的采样电阻和 VREF 别配错
如果 $R_{sense}$ 或 $V_{REF}$ 配错,斩波限流点会被设得过低,结果就是电机带不动、或者动不动就触发限流。算的时候把 $A_v = 20$ 这个增益代准。另外 VM 引脚就近并一个 0.1uF 陶瓷电容 + 大 bulk 电容(下一章讲为什么)。
立创开源上有一个现成的参考设计 smart-car-drv8701-dual-drive(yy28),6-45V 宽压、堵转仍工作、信号与地平面隔离,可以克隆工程改板用(注意页面暂无 BOM,MOS 和采样电阻要自己核对)。
L298N 为什么劝退
你可能在很多老教程里见过 L298N,但正式比赛真心不推荐:
- 它是 BJT 老工艺,导通时饱和压降大,发热严重,必须挂大散热片
- 没有寄生体二极管,得外接 8 个续流二极管(电机是感性负载,关断时会产生反向电压尖峰,需要二极管给它一条泄放路径),电路又乱又占地方
- 效率低,同样的电池跑不了多久
相比之下,TB6612、DRV8833、A4950 这些 MOS 方案导通损耗低、自带续流、效率高。L298N 只在你手头恰好有现成模块、临时凑合时用用,别当主力。
🔥 MOS 冒烟的排查故事
有参赛队遇到驱动 MOS 下管冒烟。他们没有盲目重焊,而是拿示波器逐级测信号链:单片机 PWM 口 → 栅极驱动输入 → 栅极驱动输出 → MOS 的 Vgs,一段段往下看信号在哪儿断的,迅速定位了故障。
经验:驱动故障要顺着信号链逐级排查;MOS 要选内阻低、性能稳的;用栅极驱动芯片把 MCU 和 MOS 隔离开,防止 MOS 击穿后大电流倒灌烧掉单片机;电机端加 TVS 抑制换向尖峰。来源:电磁组调车记录
PWM 调速:为什么频率定在 15~20kHz
我们一直说”占空比调速”,到底什么原理?
💡 PWM 调速像快速开关灯
灯一直开着太亮(全速)。你飞快地开-关-开-关,并改变”开”占的时间比例(占空比),眼睛感受到的是平均亮度。电机也一样——你高频地通断电源,它感受到的是平均电压。占空比 50%,等效于给了它一半的电压,转一半的速。
占空比的定义很简单:
$$\text{占空比} = \frac{T_{on}}{T_{on} + T_{off}}$$
那频率(一秒钟开关多少次)选多少?这里有个非常实际的考量——人耳的听觉范围是 20Hz ~ 20kHz。
如果你的 PWM 频率落在这个范围内(比如常见的几 kHz),电机线圈会跟着这个频率机械振动,你就听到了刺耳的”嗡嗡”啸叫声。把频率推到 20kHz 以上,超出人耳听觉,世界瞬间安静。
✅ 实测对照,非常直观
有同学实测:PWM 设 15kHz 明显啸叫,提到 22kHz 啸叫消失、电机静音。这就是为什么默认推荐把频率定在 15~20kHz,尤其 18~20kHz 是个甜点——刚好踩在可听范围的边缘外。
但也不是越高越好:
⚠️ 频率太高的代价
频率越高,MOS 的开关次数越多,开关损耗增大(发热),同时EMI(电磁干扰)也更强,会干扰旁边的传感器。所以 15~20kHz 是个三方平衡:避开啸叫、控制损耗、压住 EMI。
另外,频率还要避开车身的机械共振点,否则某个频率下整车会异常抖动。
一个特别要注意的特殊情况,留给电磁循迹组:
🔥 电磁组:PWM 会干扰你的电感传感器
有电磁循迹队伍发现,电机 PWM 对采集磁场的电感传感器产生了明显的电磁干扰,信号脏得没法用。他们把 PWM 频率压到 13-19kHz 折中后,干扰明显减小。
教训:传感器密集的车,要让 PWM 频率和传感器采集”错开”,频率不是越高越好,得兼顾啸叫、损耗、EMI 三者。来源:电磁组记录
如果你用的是互补 PWM(上下桥臂用一对互补信号驱动),还有一条铁律:
🔥 互补 PWM 必加死区,否则炸管
上下桥臂的 MOS 一个开一个关。如果切换时上管还没完全关、下管就开了,两个管子同时导通,电源直接对地短路(叫”直通 / shoot-through”),瞬间大电流炸 MOS。
解决办法是加死区时间——在上管关、下管开之间留一小段两个都不导通的空档,数百 ns 到 1us 量级,随 MOS 开关速度定。注意:相同死区在不同载波频率下,能达到的最大占空比不一样,所以死区要和频率配套设。
电源树:给整车”供血”
到这儿肌肉(电机)和功放(驱动)都有了,最后一块地基是供电。电源问题最隐蔽——它不会让你的代码报错,而是让你的车在最关键的时候莫名其妙复位、串口乱码、ADC 跳变,查到怀疑人生。
💡 电源树像自来水系统
- 电池 = 水库:高压大流量,直接供给电机这个”大用户”;
- DC-DC(Buck 降压)= 小区水泵房:把电压降到家用的 5V;
- LDO = 水龙头前的精滤:把电(水)滤干净,降到 3.3V 给娇贵的 MCU 喝。
关键是:给 MCU 单独接一根管子,别让洗衣机(电机)用水时把你喝水的水流冲乱。
电源树的标准结构
一条典型的供电链路是这样分级的:

几条要点:
- 电池直供电机功率轨(VM):电机要大电流,让它直接吃电池,别经过 DC-DC(DC-DC 带不动那么大瞬时电流)。
- DC-DC(Buck)降到 5V:给舵机、5V 传感器用。TPS 系列是常见选择,效率高。
- MCU 务必走独立 LDO 降到 3.3V。LDO 噪声低、外围简单、输出干净,特别适合给敏感的 MCU 和 ADC 基准供电(缺点是压差大时效率低、发热,所以只用它做最后一级精滤,不要拿它扛大电流降压)。
🔥 为什么 MCU 一定要独立 LDO
如果图省事让 MCU 和电机/驱动共用一路电源,电机的电流噪声会顺着电源线灌进 MCU,导致死机、串口乱码、ADC 采样不准。这种问题极其难查,因为代码完全正常。一路独立 LDO 也就几毛钱,能省掉你几个小时的 debug。
地线规划:单点共地
电源里最玄学、也最容易翻车的,是地线。
💡 单点共地像班里只设一个"班长"当基准
全班都以班长为统一基准(共地),但只能有一条主线连到班长那里。不能你拉我、我拉他绕成一个圈(地环路),否则电机这个”大嗓门”一吼,MCU 这个”听写的”就把数听错了。
具体怎么做:电机功率地和 MCU/传感器控制地各自单独走线,最后在电源入口附近用一个点(0Ω 电阻或磁珠)汇接到一起。

🔥 地线两个极端都会翻车
- 多点连接 → 地环路 / 地弹:电机的大电流在地线上产生压降,如果和控制地共用走线,会污染 ADC 基准,引起 MCU 复位、采样跳变、死机。
- 完全不共地:信号没有公共参考,更不行。
正确姿势:必须共地,但只能一个点连接,不能多点形成环路。
VM 并大电容:给电机配个”水箱”
电机是感性负载,启动、堵转、换向的瞬间电流会猛地飙升,把 VM 电压拽下去一大截。
🧩 VM 并大电容像水箱
电机猛地一启动/堵转,就像有人突然开大水龙头,管道压力瞬间掉。大电解电容(水箱)先顶上,把电流补给它,撑到电源反应过来。小陶瓷电容(滤网)则滤掉电里的高频毛刺(小气泡)。
所以驱动 VM 引脚要并两种电容:
- 大电解电容(bulk,数十~数百 uF):抗电机启动/换向时的电压跌落,做能量缓冲。选低 ESR 的,就近放在驱动 VM 引脚旁。
- 小陶瓷电容(0.1uF):就近滤高频毛刺。
⚠️ 只放小陶瓷电容滤不住低频跌落
如果 VM 只并了 0.1uF 陶瓷电容、没有大电解电容,电机启动/堵转瞬间的电压大幅跌落会拉垮整车电源,甚至复位 MCU。小电容只能滤高频,低频的能量缺口得靠大电容补。
TI 手册的建议:VM 就近接低 ESR 陶瓷 0.1uF,再配足够的 bulk 电容,具体容值要靠系统级测试来定。实战里还会在电机两端并 TVS(瞬态抑制二极管),进一步压制换向时的电压尖峰。
低电量电压补偿:让车后半程不掉速
最后一个常被忽略、却能直接拉开名次的细节。
锂电池从满电到亏电,电压能跌 20% 以上。问题来了:你的 PID 输出的是占空比,占空比固定时,电压越低、给电机的实际平均电压就越低、转速就越慢。
🧩 低电量补偿像跑步配速
体力(电量)下降后,同样”用力”(占空比)实际跑得更慢。聪明的做法是:体力越差,越加大用力比例,保持配速(速度)恒定,直到实在跑不动为止。
🔥 不补偿的后果:后半程跑偏、参数失配
有队伍的目标是”不同电压下匀速前进”,结果实测电机速度确实随电池压降变慢,后半程跑偏、速度不一致。同一套 PID 参数,满电时调好的,到亏电就表现漂移。来源:Tayoou 调车总结
做法很简单——用 ADC 实时采电池电压,把占空比按比例放大:
$$\text{实际占空比} = \text{期望占空比} \times \frac{V_{\text{标称}}}{V_{\text{实测}}}$$
电池越亏($V_{实测}$ 越小),补偿系数越大,等效给电机的平均电压就恒定了。
// V_nominal: 标称电压(常数); V_batt: ADC 实测电池电压(已滤波)
float comp = V_nominal / V_batt; // 补偿系数, 电压越低系数越大
duty_out = duty_target * comp;
if (duty_out > DUTY_MAX) duty_out = DUTY_MAX; // 限幅, 别超 100%
代码思路参考 电压补偿的实现。
⚠️ 两个补偿的坑
- ADC 采电池电压必须滤波:电机噪声大,不滤波的话补偿系数会乱跳,反而加剧速度波动。
- 电压过低时补偿会顶到 100% 仍达不到目标:这时候应该触发低压报警、适当降速,保护电池,别硬怼。
注意这是一条经验性做法——它能改善低电量掉速,但要真正做到速度恒定,还得靠速度闭环 PID,补偿只是给闭环减负的前置手段,两者配合才稳。
一点点剧透:地基之上是 PID
讲到电压补偿,已经摸到控制环的门口了。这里先埋个伏笔,把和地基直接相关的几条结论给你(详细的原理和调参后面几篇专门讲,这里不展开):
- 速度环用增量式 PID:它只输出”控制增量”(油门加一点/松一点),正反向切换平顺、对积分天然限幅,适合电机连续调速。
- 方向环/位置环用位置式 PID:直接算绝对量(方向盘打到 30 度这个位置),精度高,适合一步到位的定位。
- 串级(双环):外环管方向/位置,内环管速度,外环输出作为内环目标,外环周期比内环慢 2~5 倍。
- 控制周期:速度环 5~10ms(100~200Hz)起步,方向/外环 10~50ms,用定时器中断保证周期严格恒定。
- 铁律:必做积分限幅 + 输出限幅;切换 PID 模式或电机换向时,一定要清积分项,否则积分饱和(windup)会让输出冲顶、响应迟滞。
- 调参口诀:先 P 后 I 再 D。
💡 这只是预告
上面这些是”地基决定的约束”,具体怎么理解 P/I/D、怎么从零调出第一个能跟随目标速度的电机,是《PID 入门》那一篇手把手带你做的事;串级、抗饱和那些”工程补丁”放在《PID 进阶》;看波形治百病的调参实战在《PID 调参实战》。这里点到为止。
收尾:地基自检清单
照着下面这几条逐项过一遍,你的电控地基基本就立住了:
- ☐ 电机减速比按”目标线速度 + 爬坡扭矩”反推,动力留余量
- ☐ 编码器和电机供电分两路;机械安装同心、固定牢、无过盈摩擦
- ☐ 驱动芯片按堵转电流选型:小电机 TB6612,大电流 DRV8701,别用 L298N 当主力
- ☐ TB6612 记得给 PWM、STBY 置高;把方向 + 占空比封装成”带符号速度”
- ☐ PWM 频率 18~20kHz 起步,电磁组干扰严重就压到 13-15kHz;互补 PWM 必加死区
- ☐ 电源树分级:电池直供 VM,DC-DC 降 5V,MCU 走独立 LDO 降 3.3V
- ☐ 功率地与控制地分开走线,单点共地,别绕成地环路
- ☐ 驱动 VM 并大电解(低 ESR)+ 0.1uF 陶瓷,电机端加 TVS
- ☐ 上电池电压补偿(ADC 滤波 + 占空比限幅),低压报警降速
- ☐ 务必在赛场同款地面上调参
地基稳了,软件才有发挥的余地。但光有”肌肉”还不够——小车还得有”眼睛”和”平衡感”,才知道自己在哪、有没有跑偏。下一篇我们就来给小车装上感知系统:灰度、电磁、编码器和 IMU。
📚 本文是 「从 0 到 1 带你打电赛 · 小车电控篇」 系列(共 12 篇)第 4 篇。




