<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DRV8701 &#8211; Cloudlay</title>
	<atom:link href="https://cloudlay.cn/tag/drv8701/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudlay.cn</link>
	<description>life</description>
	<lastBuildDate>Sun, 14 Jun 2026 17:08:32 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://cloudlay.cn/wp-content/uploads/2026/01/avatar.ico</url>
	<title>DRV8701 &#8211; Cloudlay</title>
	<link>https://cloudlay.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>从0到1带你打电赛·小车电控篇(四)：让电机听话——电机驱动、PWM 与电源（电控地基）</title>
		<link>https://cloudlay.cn/nuedc-car-04-motor-power/</link>
					<comments>https://cloudlay.cn/nuedc-car-04-motor-power/#respond</comments>
		
		<dc:creator><![CDATA[云间辞]]></dc:creator>
		<pubDate>Sun, 14 Jun 2026 17:08:32 +0000</pubDate>
				<category><![CDATA[嵌入式]]></category>
		<category><![CDATA[DRV8701]]></category>
		<category><![CDATA[PWM]]></category>
		<category><![CDATA[TB6612]]></category>
		<category><![CDATA[智能小车]]></category>
		<category><![CDATA[电机驱动]]></category>
		<category><![CDATA[电源]]></category>
		<category><![CDATA[电赛]]></category>
		<guid isPermaLink="false">https://cloudlay.cn/nuedc-car-04-motor-power/</guid>

					<description><![CDATA[📚 本文是 「从 0 到 1 带你打电赛 · 小车电控篇」 系列（共 12 篇）第 4 篇。 第1篇 · 拿奖 [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="ds-series" style="border:1px solid #4488ff33;background:#4488ff0d;border-radius:8px;padding:.8em 1.1em;margin:1.2em 0">
<p style="margin:0 0 .5em"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 本文是 <strong>「从 0 到 1 带你打电赛 · 小车电控篇」</strong> 系列（共 12 篇）第 4 篇。</p>
<ol style="margin:.2em 0 0;padding-left:1.4em">
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-01-how-to-score/">第1篇 · 拿奖逻辑：把比赛拆成小目标</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-02-history/">第2篇 · 赛题进化史与押题</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-03-build-and-architecture/">第3篇 · 整车搭建与代码框架</a></li>
<li style="margin:.15em 0"><strong>第4篇 · 电机驱动与电源地基（本篇）</strong></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-05-sensing/">第5篇 · 感知：灰度/电磁/编码器/IMU</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-06-pid-basics/">第6篇 · PID 入门：搞懂 P/I/D</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-07-pid-advanced/">第7篇 · PID 进阶：串级+工程补丁</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-08-pid-tuning/">第8篇 · PID 调参实战(核心)</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-09-advanced-control/">第9篇 · 进阶控制：几时该上</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-10-vision-comm/">第10篇 · K230 视觉与通信协议</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-11-architecture-fsm/">第11篇 · 状态机与整车软件</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-12-field-manual/">第12篇 · 现场作战+避坑+开源</a></li>
</ol>
</div>
<div class="ds-callout ds-callout-note" style="border-left:4px solid #448aff;background:#448aff14;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#448aff"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 系列说明</p>
<p>这是「从0到1带你打电赛·小车电控篇」第四篇。前三篇我们聊了拿奖逻辑、赛题套路和整车框架，从这篇开始动真格——先把地基打牢。</p>
</div>
<p>你有没有遇到过这种情况：代码逻辑明明没问题，PID 也照着教程抄了，可车一上场要么嗡嗡乱叫不走直线，要么跑着跑着自己复位重启，再要么瓷砖地上飞快、一到赛场木地板就趴窝？</p>
<p>十有八九，问题不在你的算法，而在脚下这块&#8221;地基&#8221;——电机、驱动和电源。</p>
<p>这是赛后总结里被反复念叨的一句话：<strong>硬件不过关，软件再强也救不回来</strong>。控制算法是建在反馈信号和稳定供电之上的，地基一塌，上面盖得再漂亮也是空中楼阁。所以这一篇我们不碰高深的控制理论，专心把三件事讲透：<strong>电机怎么选、驱动怎么接、电源怎么供</strong>。</p>
<h2>先认识小车的&#8221;肌肉&#8221;：电机怎么选</h2>
<p>电机就是小车的肌肉。肌肉不行，神经系统（你的控制算法）指挥得再精妙也白搭。电赛小车上最常见的是两类带编码器的直流减速电机。</p>
<h3>N20 和 GA12-N20：两个常客</h3>
<p><strong>N20</strong> 是最小巧的那一类，微型直流减速电机，适合轻量级小车。</p>
<ul>
<li>额定 3-6V（工作范围 2-9V），体积小、重量轻</li>
<li>带霍尔编码器，电机轴典型 <strong>7 PPR</strong>（每转 7 个脉冲）</li>
<li>通常是 6 线制：电机两根（M+ / M-）、编码器供电两根（VCC / GND）、编码器信号两根（A / B 两相）</li>
</ul>
<p>这里有个<strong>新手最容易接错的地方</strong>：编码器的供电（3.3-5V 逻辑电平）和电机的供电（走功率轨）是<strong>分开</strong>的两路，别图省事接到一起。</p>
<p>举个具体型号让你有数：Waveshare 那款 12V/200rpm 的 N20，减速比 1:150，电机轴 7 PPR，那么输出轴每圈就是 $7 \times 150 = 1050$ 个脉冲，再经过后面要讲的四倍频，每圈能数到 4200 个计数。这个分辨率对测速来说相当够用了。</p>
<p><strong>GA12-N20</strong> 是它的&#8221;健身版&#8221;——同样是 12mm 直径，但换成了金属齿轮箱，更耐用、扭矩更大。</p>
<ul>
<li>减速比可选范围极广，1:3 到 1:1000 都有，常用的是 1:30 / 1:50 / 1:100 / 1:150</li>
<li>拿 GA12-N20-0100 举例：DC 12V、空载 100rpm、负载 80rpm、额定力矩 2kg·cm、额定电流 300mA</li>
<li>同款电压下转速参考：6V 约 95rpm，3V 约 47rpm（基本随电压线性变化）</li>
</ul>
<p>N20 塑齿轻便但扭矩弱，GA12 金属齿耐造扭矩大。需要爬坡、负载重、或者怕齿轮磨损的车，优先 GA12。</p>
<h3>减速比怎么选：像自行车换挡</h3>
<p>减速比这个参数最让人犯迷糊，其实一个比喻就懂了。</p>
<div class="ds-callout ds-callout-tip" style="border-left:4px solid #00bfa6;background:#00bfa614;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00bfa6"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 减速比 = 自行车的变速挡位</p>
<p>大减速比 = 低速挡：蹬起来轻松（扭矩大），能爬坡，但跑不快； 小减速比 = 高速挡：平路飞快（转速高），但起步费劲、爬坡没劲。</p>
<p>减速比越大，输出轴转速越低、扭矩越大，运转还越静音。</p>
</div>
<p>选型的思路是<strong>从你的目标反推</strong>，分两路算：</p>
<ol>
<li><strong>看顶速</strong>：目标线速度 = 轮子周长 × 输出轴每秒转数。先定下你想要的最大线速度（比如 1.5 m/s），再用轮径折算出需要的输出轴 rpm，倒推减速比。</li>
<li><strong>看扭矩</strong>：车有多重、要不要爬坡、起步要不要猛，决定了你需要多大扭矩。负载重、要爬坡就往大减速比走。</li>
</ol>
<div class="ds-callout ds-callout-warning" style="border-left:4px solid #ff9100;background:#ff910014;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff9100"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 减速比是个权衡，两头都别走极端</p>
<p>比太小：转速够了但扭矩不足，爬不动坡、起步无力； 比太大：扭矩管够但顶速上不去，到了拼用时的发挥部分就吃亏。 实在拿不准，宁可让动力<strong>留点余量</strong>——下面那个&#8221;瓷砖地能跑、木地板趴窝&#8221;的惨案，根子就是动力没余量。</p>
</div>
<h3>编码器：电机的&#8221;码表&#8221;，靠它测速</h3>
<p>编码器是装在电机尾部的转速传感器，相当于自行车的码表。它输出 A、B 两相方波，相位差 90°。我们用 STM32 定时器的<strong>编码器模式</strong>来读它，并且做<strong>正交四倍频</strong>。</p>
<p>四倍频是什么意思？AB 两相每个周期里有 4 个跳变沿（A 上升、B 上升、A 下降、B 下降），我们每个沿都数一次，分辨率就翻了 4 倍。所以：</p>
<p class="ds-math" style="overflow-x:auto">$$\text{每圈计数} = \text{PPR} \times \text{减速比} \times 4$$</p>
<p>测速的办法很直接：在固定周期的定时器中断里，读一次 <code>TIMx-&gt;CNT</code>，算出这段时间里计数增加了多少（Δ脉冲），就是当前转速的反馈值。低速场景脉冲太少不准，可以用 M/T 法改进，但入门阶段固定周期测增量就够了。</p>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 一个真实的翻车案例：问题根本不在软件</p>
<p>某队省赛失利。车在实验室瓷砖地上能跑到 2m/s，一到赛场木地板就跑不起来，十字路口冲不出去。队员死磕软件、反复改 PID，毫无效果。</p>
<p>最后扒出来的根因是<strong>机械</strong>：连接杆插得太紧，产生了过盈摩擦；电机没固定牢，一跑起来就抖。结果编码器脉冲抖动严重，反馈信号全是噪声，PID 自然整不稳。</p>
<p>教训有三条，条条用血换的： 1. 软件很难弥补硬件短板，编码器的机械安装（同心、牢固、无过盈摩擦）是闭环精度的前提； 2. 一定要在<strong>比赛同款地面</strong>上调参，别只在瓷砖上测； 3. 选电机要给动力留余量，别按光滑地面的极限去卡。</p>
<p>来源：<a href="https://www.cnblogs.com/Tayoou/p/15257616.html" target="_blank" rel="noopener noreferrer">Tayoou 的调车总结</a></p>
</div>
<h2>驱动芯片：给肌肉接上&#8221;功放&#8221;</h2>
<p>MCU 的 GPIO 引脚只能输出几毫安的小电流，电机一启动就要几百毫安甚至几安培——直接连上去，引脚瞬间烧掉。中间必须有个&#8221;功率放大器&#8221;，这就是驱动芯片。</p>
<div class="ds-callout ds-callout-tip" style="border-left:4px solid #00bfa6;background:#00bfa614;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00bfa6"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 驱动芯片像音响里的功放</p>
<p>你的手机（MCU）输出的是微弱的音频信号，推不动大音箱。中间要接一个功放（驱动芯片），把小信号放大成能推动音箱（电机）的大功率。功放的好坏，直接决定声音（动力）干不干净、够不够劲。</p>
</div>
<p>驱动芯片内部的核心结构是 <strong>H 桥</strong>——四个开关搭成的电路。</p>
<div class="ds-callout ds-callout-example" style="border-left:4px solid #7c4dff;background:#7c4dff14;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#7c4dff"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> H 桥像四个开关搭的跷跷板</p>
<p>对角的两个开关闭合，电流从一个方向流过电机，正转；切换到另一对开关，电流反向，反转。靠&#8221;哪两个开关导通&#8221;来控制方向，靠&#8221;开关闭合时间的占比&#8221;来控制速度。</p>
</div>
<h3>选型：按电机的堵转电流分档</h3>
<p>选驱动芯片，最关键的指标是<strong>电机堵转电流</strong>（电机被卡死时的最大电流，远大于正常工作电流）。芯片的电流能力必须扛得住堵转，否则一卡就烧。下面这张表是电赛圈里的主流选择：</p>
<table>
<thead>
<tr>
<th>芯片</th>
<th>电压范围</th>
<th>电流能力</th>
<th>特点</th>
<th>适用场景</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>TB6612FNG</strong></td>
<td>VM 2.5~13.5V</td>
<td>连续 1.2A / 峰值 3.2A</td>
<td>双 H 桥 MOS，集成度高，自带过热/欠压保护</td>
<td>小电机、入门首选</td>
</tr>
<tr>
<td><strong>DRV8701</strong></td>
<td>6.5~45V</td>
<td>取决于外置 MOS</td>
<td>栅极驱动 + 外置 4 颗 N-MOS，宽压免升压</td>
<td>大电流、大电机、智能车主流</td>
</tr>
<tr>
<td><strong>A4950</strong></td>
<td>8~40V</td>
<td>峰值 3.5A</td>
<td>单 H 桥，两个电机要两片</td>
<td>中大电流</td>
</tr>
<tr>
<td><strong>DRV8833</strong></td>
<td>2.7~10.8V</td>
<td>1.5A RMS / 2A 峰值</td>
<td>TB6612 平替，电流偏弱</td>
<td>小功率</td>
</tr>
<tr>
<td><strong>L298N</strong></td>
<td>3~48V</td>
<td>连续 2A / 峰值 3A</td>
<td>BJT 老工艺，发热严重</td>
<td><strong>不推荐</strong></td>
</tr>
</tbody>
</table>
<p>缺货时，国产的 GC8871、BDR 系列可以做 TB6612/同类的平替。</p>
<p><strong>小电机选 TB6612，大电机选 DRV8701</strong>，这是两条最常走的路。下面分别说说它俩。</p>
<h3>TB6612：小电机的省事之选</h3>
<p>TB6612 把&#8221;指挥&#8221;和&#8221;开关&#8221;都集成在一颗芯片里，外围简单，特别适合 N20 这类小电机。引脚和真值表必须记牢：</p>
<ul>
<li><strong>PWMA / PWMB</strong>：调速（接 PWM 信号）</li>
<li><strong>AIN1 / AIN2 / BIN1 / BIN2</strong>：控制方向</li>
<li><strong>STBY</strong>：待机脚，<strong>必须置高</strong>芯片才工作</li>
<li><strong>VM</strong>：电机电源；<strong>VCC</strong>：逻辑电源（2.7~5.5V）</li>
</ul>
<p>真值表（以 A 通道为例）：</p>
<table>
<thead>
<tr>
<th>AIN1</th>
<th>AIN2</th>
<th>PWMA</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>0</td>
<td>给占空比</td>
<td>正转</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>给占空比</td>
<td>反转</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>—</td>
<td>短路刹车（急停）</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>—</td>
<td>滑行（自由停）</td>
</tr>
</tbody>
</table>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 新手最常见的坑：只给方向不给 PWM，电机纹丝不动</p>
<p>TB6612 的输出 AO1/AO2 <strong>必须有 PWM 输入才有效</strong>。很多人只接了 AIN1/AIN2 设好方向，PWM 占空比却忘了给（或者给了 0），然后对着不动的电机怀疑人生。记住：方向脚定方向，PWM 脚给动力，<strong>两者缺一不可</strong>。</p>
<p>顺带一个接地建议：GND 最好一路接电源地、一路接单片机地，做&#8221;单点共地&#8221;（后面电源章节细讲）。</p>
</div>
<p>下面是 STM32 HAL 库下 TB6612 调速 + 换向的核心代码，PWM 配成 24kHz：</p>
<pre><code class="language-c">// 占空比 = (Pulse+1)/(ARR+1)
// 72MHz 主频, Prescaler=2, ARR=999  -&gt;  PWM 频率 = 72M/3/1000 = 24kHz
HAL_TIM_PWM_Start(&amp;htim3, TIM_CHANNEL_2);          // 启动 PWM 通道

// 设置转向：BIN1=1, BIN2=0 -&gt; 正转
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(&amp;htim3, TIM_CHANNEL_2, pulse);</code></pre>
<p>代码思路参考 <a href="https://c.miaowlabs.com/A25.html" target="_blank" rel="noopener noreferrer">喵呜实验室的 TB6612 教程</a>。</p>
<p>这里引出一个非常好用的编程抽象：<strong>带符号速度</strong>。我们希望上层 PID 算出一个数，正数就前进、负数就后退、绝对值就是快慢，不用每次都手动管方向。封装一下：</p>
<pre><code class="language-c">#define ARR_MAX  999      // 与 PWM 的 ARR 对应, 占空比上限

// speed: 带符号速度, 正前进负后退, 范围 [-ARR_MAX, ARR_MAX]
void Motor_SetSpeed(int16_t speed)
{
    if (speed &gt;= 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 &gt; ARR_MAX) speed = ARR_MAX;             // 输出限幅, 别超 ARR
    __HAL_TIM_SET_COMPARE(&amp;htim3, TIM_CHANNEL_2, speed);
}</code></pre>
<p><strong>方向 GPIO + 占空比 = 带符号速度</strong>，这个封装一做，后面写 PID 的人就只管甩一个数过来，世界清静了。</p>
<h3>DRV8701：大电流场景的指挥官</h3>
<p>当你用 RS380 这类大电机、或者要跑高速大扭矩时，TB6612 那点电流就不够看了。DRV8701 是另一种思路——它本身<strong>不直接驱动电机</strong>，而是一个&#8221;栅极驱动器&#8221;：</p>
<div class="ds-callout ds-callout-example" style="border-left:4px solid #7c4dff;background:#7c4dff14;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#7c4dff"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> DRV8701 是指挥，MOS 是干活的大力士</p>
<p>TB6612 把指挥（控制逻辑）和小开关（MOS）都塞进一颗芯片，省事但电流小。DRV8701 只当&#8221;指挥官&#8221;，负责发号施令（驱动栅极），真正扛大电流的四颗 N 沟道 MOS 管放在芯片外面。开关分离出去，所以能扛远比集成芯片大的电流。</p>
</div>
<p>它的几个亮点：</p>
<ul>
<li><strong>宽压 6.5~45V，免升压</strong>：直接吃高压电池，不用额外的 BOOST 升压电路，也就避免了升压带来的干扰（不同手册标注略有出入，这里取保守的 6.5~45V）</li>
<li><strong>内置电流采样</strong>，放大增益 $A_v = 20\,\text{V/V}$</li>
<li><strong>定时关断斩波限流</strong>：能给电机设一个电流上限，堵转时自动斩波保护</li>
<li>支持 100% 占空比</li>
</ul>
<p>它有两种工作模式，接线时要分清：</p>
<ul>
<li><strong>E 型</strong>：PH/EN 模式。EN 进 PWM（调速），PH 给方向。一路 PWM 一路电平，省 IO。</li>
<li><strong>P 型</strong>：双 PWM 模式。IN1/IN2 各接一路 PWM。</li>
</ul>
<p>斩波限流的电流上限怎么算：</p>
<p class="ds-math" style="overflow-x:auto">$$I_{chop} = \frac{V_{REF}}{A_v \times R_{sense}}$$</p>
<p>其中 $A_v = 20\,\text{V/V}$ 是内部放大增益，$R_{sense}$ 是你外接的采样电阻，$V_{REF}$ 是你设的参考电压。</p>
<div class="ds-callout ds-callout-warning" style="border-left:4px solid #ff9100;background:#ff910014;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff9100"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> DRV8701 的采样电阻和 VREF 别配错</p>
<p>如果 $R_{sense}$ 或 $V_{REF}$ 配错，斩波限流点会被设得过低，结果就是电机带不动、或者动不动就触发限流。算的时候把 $A_v = 20$ 这个增益代准。另外 VM 引脚就近并一个 0.1uF 陶瓷电容 + 大 bulk 电容（下一章讲为什么）。</p>
</div>
<p>立创开源上有一个现成的参考设计 <a href="https://oshwhub.com/yy28/smart-car-drv8701-dual-drive-ope" target="_blank" rel="noopener noreferrer">smart-car-drv8701-dual-drive（yy28）</a>，6-45V 宽压、堵转仍工作、信号与地平面隔离，可以克隆工程改板用（注意页面暂无 BOM，MOS 和采样电阻要自己核对）。</p>
<h3>L298N 为什么劝退</h3>
<p>你可能在很多老教程里见过 L298N，但<strong>正式比赛真心不推荐</strong>：</p>
<ul>
<li>它是 <strong>BJT 老工艺</strong>，导通时饱和压降大，发热严重，必须挂大散热片</li>
<li><strong>没有寄生体二极管</strong>，得外接 8 个续流二极管（电机是感性负载，关断时会产生反向电压尖峰，需要二极管给它一条泄放路径），电路又乱又占地方</li>
<li>效率低，同样的电池跑不了多久</li>
</ul>
<p>相比之下，TB6612、DRV8833、A4950 这些 MOS 方案导通损耗低、自带续流、效率高。L298N 只在你手头恰好有现成模块、临时凑合时用用，别当主力。</p>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> MOS 冒烟的排查故事</p>
<p>有参赛队遇到驱动 MOS 下管冒烟。他们没有盲目重焊，而是拿示波器<strong>逐级测信号链</strong>：单片机 PWM 口 → 栅极驱动输入 → 栅极驱动输出 → MOS 的 Vgs，一段段往下看信号在哪儿断的，迅速定位了故障。</p>
<p>经验：驱动故障要顺着信号链逐级排查；MOS 要选内阻低、性能稳的；用栅极驱动芯片把 MCU 和 MOS 隔离开，<strong>防止 MOS 击穿后大电流倒灌烧掉单片机</strong>；电机端加 TVS 抑制换向尖峰。来源：<a href="https://blog.csdn.net/qq_41954556/article/details/123611226" target="_blank" rel="noopener noreferrer">电磁组调车记录</a></p>
</div>
<h2>PWM 调速：为什么频率定在 15~20kHz</h2>
<p>我们一直说&#8221;占空比调速&#8221;，到底什么原理？</p>
<div class="ds-callout ds-callout-tip" style="border-left:4px solid #00bfa6;background:#00bfa614;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00bfa6"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PWM 调速像快速开关灯</p>
<p>灯一直开着太亮（全速）。你飞快地开-关-开-关，并改变&#8221;开&#8221;占的时间比例（占空比），眼睛感受到的是平均亮度。电机也一样——你高频地通断电源，它感受到的是<strong>平均电压</strong>。占空比 50%，等效于给了它一半的电压，转一半的速。</p>
</div>
<p>占空比的定义很简单：</p>
<p class="ds-math" style="overflow-x:auto">$$\text{占空比} = \frac{T_{on}}{T_{on} + T_{off}}$$</p>
<p>那频率（一秒钟开关多少次）选多少？这里有个非常实际的考量——<strong>人耳的听觉范围是 20Hz ~ 20kHz</strong>。</p>
<p>如果你的 PWM 频率落在这个范围内（比如常见的几 kHz），电机线圈会跟着这个频率机械振动，你就听到了刺耳的&#8221;嗡嗡&#8221;啸叫声。把频率推到 20kHz 以上，超出人耳听觉，世界瞬间安静。</p>
<div class="ds-callout ds-callout-success" style="border-left:4px solid #00c853;background:#00c85314;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00c853"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 实测对照，非常直观</p>
<p>有同学实测：PWM 设 <strong>15kHz 明显啸叫</strong>，提到 <strong>22kHz 啸叫消失、电机静音</strong>。这就是为什么默认推荐把频率定在 <strong>15~20kHz</strong>，尤其 18~20kHz 是个甜点——刚好踩在可听范围的边缘外。</p>
</div>
<p>但也不是越高越好：</p>
<div class="ds-callout ds-callout-warning" style="border-left:4px solid #ff9100;background:#ff910014;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff9100"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 频率太高的代价</p>
<p>频率越高，MOS 的开关次数越多，<strong>开关损耗增大</strong>（发热），同时<strong>EMI（电磁干扰）</strong>也更强，会干扰旁边的传感器。所以 15~20kHz 是个三方平衡：避开啸叫、控制损耗、压住 EMI。</p>
<p>另外，频率还要<strong>避开车身的机械共振点</strong>，否则某个频率下整车会异常抖动。</p>
</div>
<p>一个特别要注意的特殊情况，留给电磁循迹组：</p>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 电磁组：PWM 会干扰你的电感传感器</p>
<p>有电磁循迹队伍发现，电机 PWM 对采集磁场的电感传感器产生了明显的电磁干扰，信号脏得没法用。他们把 PWM 频率压到 <strong>13-19kHz</strong> 折中后，干扰明显减小。</p>
<p>教训：传感器密集的车，要让 PWM 频率和传感器采集&#8221;错开&#8221;，频率不是越高越好，得兼顾啸叫、损耗、EMI 三者。来源：<a href="https://blog.csdn.net/qq_41954556/article/details/123611226" target="_blank" rel="noopener noreferrer">电磁组记录</a></p>
</div>
<p>如果你用的是<strong>互补 PWM</strong>（上下桥臂用一对互补信号驱动），还有一条铁律：</p>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 互补 PWM 必加死区，否则炸管</p>
<p>上下桥臂的 MOS 一个开一个关。如果切换时上管还没完全关、下管就开了，两个管子同时导通，电源直接对地短路（叫&#8221;直通 / shoot-through&#8221;），瞬间大电流炸 MOS。</p>
<p>解决办法是加<strong>死区时间</strong>——在上管关、下管开之间留一小段两个都不导通的空档，数百 ns 到 1us 量级，随 MOS 开关速度定。注意：相同死区在不同载波频率下，能达到的最大占空比不一样，所以死区要和频率配套设。</p>
</div>
<h2>电源树：给整车&#8221;供血&#8221;</h2>
<p>到这儿肌肉（电机）和功放（驱动）都有了，最后一块地基是供电。电源问题最隐蔽——它不会让你的代码报错，而是让你的车在最关键的时候<strong>莫名其妙复位、串口乱码、ADC 跳变</strong>，查到怀疑人生。</p>
<div class="ds-callout ds-callout-tip" style="border-left:4px solid #00bfa6;background:#00bfa614;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00bfa6"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 电源树像自来水系统</p>
<ul>
<li><strong>电池 = 水库</strong>：高压大流量，直接供给电机这个&#8221;大用户&#8221;；</li>
<li><strong>DC-DC（Buck 降压）= 小区水泵房</strong>：把电压降到家用的 5V；</li>
<li><strong>LDO = 水龙头前的精滤</strong>：把电（水）滤干净，降到 3.3V 给娇贵的 MCU 喝。</li>
</ul>
<p>关键是：<strong>给 MCU 单独接一根管子</strong>，别让洗衣机（电机）用水时把你喝水的水流冲乱。</p>
</div>
<h3>电源树的标准结构</h3>
<p>一条典型的供电链路是这样分级的：</p>
<figure class="ds-diagram" style="text-align:center;margin:1.3em 0"><img decoding="async" src="https://cloudlay.cn/wp-content/uploads/dianseiche/d68e05afcb0c.png" alt="电赛小车电控 · 示意图" loading="lazy" style="max-width:100%;height:auto;background:#fff;border-radius:8px;padding:6px;box-shadow:0 1px 6px rgba(0,0,0,.25)"></figure>
<p>几条要点：</p>
<ol>
<li><strong>电池直供电机功率轨（VM）</strong>：电机要大电流，让它直接吃电池，别经过 DC-DC（DC-DC 带不动那么大瞬时电流）。</li>
<li><strong>DC-DC（Buck）降到 5V</strong>：给舵机、5V 传感器用。TPS 系列是常见选择，效率高。</li>
<li><strong>MCU 务必走独立 LDO 降到 3.3V</strong>。LDO 噪声低、外围简单、输出干净，特别适合给敏感的 MCU 和 ADC 基准供电（缺点是压差大时效率低、发热，所以只用它做最后一级精滤，不要拿它扛大电流降压）。</li>
</ol>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 为什么 MCU 一定要独立 LDO</p>
<p>如果图省事让 MCU 和电机/驱动共用一路电源，电机的电流噪声会顺着电源线灌进 MCU，导致<strong>死机、串口乱码、ADC 采样不准</strong>。这种问题极其难查，因为代码完全正常。一路独立 LDO 也就几毛钱，能省掉你几个小时的 debug。</p>
</div>
<h3>地线规划：单点共地</h3>
<p>电源里最玄学、也最容易翻车的，是<strong>地线</strong>。</p>
<div class="ds-callout ds-callout-tip" style="border-left:4px solid #00bfa6;background:#00bfa614;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00bfa6"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 单点共地像班里只设一个&quot;班长&quot;当基准</p>
<p>全班都以班长为统一基准（共地），但<strong>只能有一条主线</strong>连到班长那里。不能你拉我、我拉他绕成一个圈（地环路），否则电机这个&#8221;大嗓门&#8221;一吼，MCU 这个&#8221;听写的&#8221;就把数听错了。</p>
</div>
<p>具体怎么做：<strong>电机功率地</strong>和 <strong>MCU/传感器控制地</strong>各自单独走线，最后在电源入口附近用<strong>一个点</strong>（0Ω 电阻或磁珠）汇接到一起。</p>
<figure class="ds-diagram" style="text-align:center;margin:1.3em 0"><img decoding="async" src="https://cloudlay.cn/wp-content/uploads/dianseiche/00cf06516928.png" alt="电赛小车电控 · 示意图" loading="lazy" style="max-width:100%;height:auto;background:#fff;border-radius:8px;padding:6px;box-shadow:0 1px 6px rgba(0,0,0,.25)"></figure>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 地线两个极端都会翻车</p>
<ul>
<li><strong>多点连接 → 地环路 / 地弹</strong>：电机的大电流在地线上产生压降，如果和控制地共用走线，会污染 ADC 基准，引起 MCU 复位、采样跳变、死机。</li>
<li><strong>完全不共地</strong>：信号没有公共参考，更不行。</li>
</ul>
<p>正确姿势：<strong>必须共地，但只能一个点连接</strong>，不能多点形成环路。</p>
</div>
<h3>VM 并大电容：给电机配个&#8221;水箱&#8221;</h3>
<p>电机是感性负载，启动、堵转、换向的瞬间电流会猛地飙升，把 VM 电压拽下去一大截。</p>
<div class="ds-callout ds-callout-example" style="border-left:4px solid #7c4dff;background:#7c4dff14;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#7c4dff"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VM 并大电容像水箱</p>
<p>电机猛地一启动/堵转，就像有人突然开大水龙头，管道压力瞬间掉。<strong>大电解电容（水箱）先顶上</strong>，把电流补给它，撑到电源反应过来。<strong>小陶瓷电容（滤网）</strong>则滤掉电里的高频毛刺（小气泡）。</p>
</div>
<p>所以驱动 VM 引脚要并两种电容：</p>
<ul>
<li><strong>大电解电容（bulk，数十~数百 uF）</strong>：抗电机启动/换向时的电压跌落，做能量缓冲。选<strong>低 ESR</strong> 的，就近放在驱动 VM 引脚旁。</li>
<li><strong>小陶瓷电容（0.1uF）</strong>：就近滤高频毛刺。</li>
</ul>
<div class="ds-callout ds-callout-warning" style="border-left:4px solid #ff9100;background:#ff910014;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff9100"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 只放小陶瓷电容滤不住低频跌落</p>
<p>如果 VM 只并了 0.1uF 陶瓷电容、没有大电解电容，电机启动/堵转瞬间的电压大幅跌落会<strong>拉垮整车电源，甚至复位 MCU</strong>。小电容只能滤高频，低频的能量缺口得靠大电容补。</p>
<p>TI 手册的建议：VM 就近接低 ESR 陶瓷 0.1uF，再配足够的 bulk 电容，具体容值要靠系统级测试来定。实战里还会在<strong>电机两端并 TVS（瞬态抑制二极管）</strong>，进一步压制换向时的电压尖峰。</p>
</div>
<h2>低电量电压补偿：让车后半程不掉速</h2>
<p>最后一个常被忽略、却能直接拉开名次的细节。</p>
<p>锂电池从满电到亏电，电压能跌 20% 以上。问题来了：你的 PID 输出的是<strong>占空比</strong>，占空比固定时，电压越低、给电机的实际平均电压就越低、转速就越慢。</p>
<div class="ds-callout ds-callout-example" style="border-left:4px solid #7c4dff;background:#7c4dff14;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#7c4dff"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 低电量补偿像跑步配速</p>
<p>体力（电量）下降后，同样&#8221;用力&#8221;（占空比）实际跑得更慢。聪明的做法是：体力越差，越加大用力比例，保持配速（速度）恒定，直到实在跑不动为止。</p>
</div>
<div class="ds-callout ds-callout-danger" style="border-left:4px solid #ff1744;background:#ff174414;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff1744"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 不补偿的后果：后半程跑偏、参数失配</p>
<p>有队伍的目标是&#8221;不同电压下匀速前进&#8221;，结果实测电机速度确实随电池压降变慢，<strong>后半程跑偏、速度不一致</strong>。同一套 PID 参数，满电时调好的，到亏电就表现漂移。来源：<a href="https://www.cnblogs.com/Tayoou/p/15257616.html" target="_blank" rel="noopener noreferrer">Tayoou 调车总结</a></p>
</div>
<p>做法很简单——用 ADC 实时采电池电压，把占空比按比例放大：</p>
<p class="ds-math" style="overflow-x:auto">$$\text{实际占空比} = \text{期望占空比} \times \frac{V_{\text{标称}}}{V_{\text{实测}}}$$</p>
<p>电池越亏（$V_{实测}$ 越小），补偿系数越大，等效给电机的平均电压就恒定了。</p>
<pre><code class="language-c">// V_nominal: 标称电压(常数); V_batt: ADC 实测电池电压(已滤波)
float comp = V_nominal / V_batt;       // 补偿系数, 电压越低系数越大
duty_out = duty_target * comp;
if (duty_out &gt; DUTY_MAX) duty_out = DUTY_MAX;   // 限幅, 别超 100%</code></pre>
<p>代码思路参考 <a href="https://zhuanlan.zhihu.com/p/513969803" target="_blank" rel="noopener noreferrer">电压补偿的实现</a>。</p>
<div class="ds-callout ds-callout-warning" style="border-left:4px solid #ff9100;background:#ff910014;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#ff9100"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 两个补偿的坑</p>
<ol>
<li><strong>ADC 采电池电压必须滤波</strong>：电机噪声大，不滤波的话补偿系数会乱跳，反而加剧速度波动。</li>
<li><strong>电压过低时补偿会顶到 100% 仍达不到目标</strong>：这时候应该触发低压报警、适当降速，保护电池，别硬怼。</li>
</ol>
<p>注意这是一条经验性做法——它能改善低电量掉速，但要真正做到速度恒定，还得靠<strong>速度闭环 PID</strong>，补偿只是给闭环减负的前置手段，两者配合才稳。</p>
</div>
<h2>一点点剧透：地基之上是 PID</h2>
<p>讲到电压补偿，已经摸到控制环的门口了。这里先埋个伏笔，把和地基直接相关的几条结论给你（详细的原理和调参后面几篇专门讲，这里不展开）：</p>
<ul>
<li><strong>速度环用增量式 PID</strong>：它只输出&#8221;控制增量&#8221;（油门加一点/松一点），正反向切换平顺、对积分天然限幅，适合电机连续调速。</li>
<li><strong>方向环/位置环用位置式 PID</strong>：直接算绝对量（方向盘打到 30 度这个位置），精度高，适合一步到位的定位。</li>
<li><strong>串级（双环）</strong>：外环管方向/位置，内环管速度，外环输出作为内环目标，外环周期比内环慢 2~5 倍。</li>
<li><strong>控制周期</strong>：速度环 5~10ms（100~200Hz）起步，方向/外环 10~50ms，用定时器中断保证周期严格恒定。</li>
<li><strong>铁律</strong>：必做积分限幅 + 输出限幅；切换 PID 模式或电机换向时，<strong>一定要清积分项</strong>，否则积分饱和（windup）会让输出冲顶、响应迟滞。</li>
<li><strong>调参口诀</strong>：先 P 后 I 再 D。</li>
</ul>
<div class="ds-callout ds-callout-tip" style="border-left:4px solid #00bfa6;background:#00bfa614;padding:.6em 1em;margin:1.2em 0;border-radius:6px">
<p style="margin:0 0 .45em;font-weight:700;color:#00bfa6"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 这只是预告</p>
<p>上面这些是&#8221;地基决定的约束&#8221;，具体怎么理解 P/I/D、怎么从零调出第一个能跟随目标速度的电机，是《PID 入门》那一篇手把手带你做的事；串级、抗饱和那些&#8221;工程补丁&#8221;放在《PID 进阶》；看波形治百病的调参实战在《PID 调参实战》。这里点到为止。</p>
</div>
<h2>收尾：地基自检清单</h2>
<p>照着下面这几条逐项过一遍，你的电控地基基本就立住了：</p>
<ul>
<li>☐ 电机减速比按&#8221;目标线速度 + 爬坡扭矩&#8221;反推，动力留余量</li>
<li>☐ 编码器和电机供电分两路；机械安装同心、固定牢、无过盈摩擦</li>
<li>☐ 驱动芯片按堵转电流选型：小电机 TB6612，大电流 DRV8701，别用 L298N 当主力</li>
<li>☐ TB6612 记得给 PWM、STBY 置高；把方向 + 占空比封装成&#8221;带符号速度&#8221;</li>
<li>☐ PWM 频率 18~20kHz 起步，电磁组干扰严重就压到 13-15kHz；互补 PWM 必加死区</li>
<li>☐ 电源树分级：电池直供 VM，DC-DC 降 5V，MCU 走独立 LDO 降 3.3V</li>
<li>☐ 功率地与控制地分开走线，单点共地，别绕成地环路</li>
<li>☐ 驱动 VM 并大电解（低 ESR）+ 0.1uF 陶瓷，电机端加 TVS</li>
<li>☐ 上电池电压补偿（ADC 滤波 + 占空比限幅），低压报警降速</li>
<li>☐ <strong>务必在赛场同款地面上调参</strong></li>
</ul>
<p>地基稳了，软件才有发挥的余地。但光有&#8221;肌肉&#8221;还不够——小车还得有&#8221;眼睛&#8221;和&#8221;平衡感&#8221;，才知道自己在哪、有没有跑偏。下一篇我们就来给小车装上感知系统：灰度、电磁、编码器和 IMU。</p>
<div class="ds-series" style="border:1px solid #4488ff33;background:#4488ff0d;border-radius:8px;padding:.8em 1.1em;margin:1.2em 0">
<p style="margin:0 0 .5em"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 本文是 <strong>「从 0 到 1 带你打电赛 · 小车电控篇」</strong> 系列（共 12 篇）第 4 篇。</p>
<ol style="margin:.2em 0 0;padding-left:1.4em">
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-01-how-to-score/">第1篇 · 拿奖逻辑：把比赛拆成小目标</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-02-history/">第2篇 · 赛题进化史与押题</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-03-build-and-architecture/">第3篇 · 整车搭建与代码框架</a></li>
<li style="margin:.15em 0"><strong>第4篇 · 电机驱动与电源地基（本篇）</strong></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-05-sensing/">第5篇 · 感知：灰度/电磁/编码器/IMU</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-06-pid-basics/">第6篇 · PID 入门：搞懂 P/I/D</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-07-pid-advanced/">第7篇 · PID 进阶：串级+工程补丁</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-08-pid-tuning/">第8篇 · PID 调参实战(核心)</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-09-advanced-control/">第9篇 · 进阶控制：几时该上</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-10-vision-comm/">第10篇 · K230 视觉与通信协议</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-11-architecture-fsm/">第11篇 · 状态机与整车软件</a></li>
<li style="margin:.15em 0"><a href="https://cloudlay.cn/nuedc-car-12-field-manual/">第12篇 · 现场作战+避坑+开源</a></li>
</ol>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudlay.cn/nuedc-car-04-motor-power/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
