返回上一级
2803 字
14 分钟
实战项目 纯硬件循迹小车

p106–p117(原理 / 黑线检测 / 控制逻辑 / 电机驱动 / 电源电路)

这是整门课的收口。前面 105 集学的元器件和电路在这里全部用上,而且每个电阻的值都得自己算。

工作原理:差速转向#

板底有两对红外管,每对一个红外发射 LED 加一个红外接收管。

白色区域:白光反射所有光谱 → 红外光被反射回接收管 → 接收到信号 → 电机转
黑色区域:黑色吸收所有光 → 接收管收不到红外光 → 该侧电机停

循迹过程:

两侧都在白区 → 两轮同转直行
一侧压到黑线 → 该侧轮停、另一侧继续转 → 产生差速 → 拐弯
拐到一定角度后红外管脱离黑线 → 恢复前进

一句话:用红外光识别黑线,按检测结果控制两个轮子是否转动。

黑线检测的原理#

红外接收二极管#

理解模型:与光强有关的电流源,而且必须反向使用。

状态反向电流
无红外光极小(可能纳安级、微安级,看型号)
收到红外光产生反向光电流,光越强电流越大

电路与公式#

5V → 电阻 R → 节点 VR → 红外接收二极管 → GND
VR = 5V − IR × R

两组数值#

区域反向电流计算VR
白色假设 1mA1mA × 1K = 1V≈ 4V
黑色假设 1µA1µA × 1K = 1mV≈ 4.999V

同一点在黑区、白区有两个不同电压值(4V vs 4.999V),据此判断小车是否走到黑线区域。

R 还能调灵敏度:IR 基本不变时,R 取得越大,白区 VR 掉得越低。

控制逻辑#

加比较器做判断:

同相端 V+ 接参考电压 4.5V(取在 4V 与 5V 之间)
红外处理电路的信号接反相端 V−
区域VR比较比较器 Vout三极管电机
黑线5VV− > V+低电平不导通停
白线4VV− < V+高电平导通转

和实物演示一致:一侧接收管进黑区 → 该侧轮停、另一侧继续转 → 差速拐弯。

电机驱动电路的设计演进#

第一版#

本车电机只单向工作,不需要正反转 → 只需控制「是否接电」→ 一个开关就够。选 NPN 三极管 SS8050。

封装上有坑:板子要直接贴在车体结构面上,不能用插件(直插)元器件——引脚会把板子顶起来,没法平放,必须选贴片封装。

电机不画在原理图上。电机用两根线焊在板上,板上只留两个孔,用排针 Header 2 表示电机接口。

改善版:五个关键改进#

① 电机续流回路#

电机是电感模型,回路阻抗突变时产生很高感应电动势
三极管导通后突然断开 → 电机两端产生高压
量级:几十到一两百伏(约 100V)很轻松

解决:电机两端加续流二极管。

选型要求:二极管导通电流 > 电机正常工作电流。

电机参数:TT 电机,正常工作电流约 500mA(负载重时更大)。

二极管只在断开瞬间导通一下,普通二极管即可,比如 1N4007;大功率电机最大电流可达 10A,那就必须选大功率二极管。

② 三极管选型#

SS8050 的 Ic 够用,但封装小、散热差,工作中发热大概五六十度。小项目没什么大问题。

③ 基极电阻计算#

网上那句「基极电阻随便取 1K/10K」只适用于负载电流几 mA 到十几 mA 的场合,驱动电机必须算。

① 三极管做开关要饱和导通 → 条件:β × IB > IC
② IC ≈ 电机电流 500mA
③ 假设 β = 100 → IB = 500mA / 100 = 5mA
④ R总 = (5V − Vbe 0.7V) / IB = (5 − 0.7) / 5mA = 4.3V / 5mA ≈ 0.86K
⑤ 总阻值要小于 0.86K → 实际做法:一个取 0Ω、另一个取 820Ω

为什么不能把 0Ω 那个直接短路掉:

LM393 是 OC 输出,内部等效一个三极管
输出低电平时该三极管导通
若此处电阻为 0Ω,相当于把回路直接短路 → LM393 会烧掉
取 820Ω 时该支路电流约 5mA
而比较器/运放的输出与吸收电流一般可达五六十 mA → 安全

这个电阻绝不能省略不画,它是一条重要支路,还得预留出来方便后期调试。

后期必须实测调整:实际三极管 β 常比 100 大很多(可能 200 甚至 300)。焊上后测是否饱和导通,若已饱和就把电阻逐步放大——β 富余时,电阻越大静态功耗越小。

④ 参考电压分压电阻初值#

上面 10K、下面 1K,配合滑动变阻器改变参考电压。

参考电压必须用滑动变阻器,不能固定分压:

原理分析时假设 IR = 1mA、硬分压出 4.5V(如 500Ω + 4.5K)是不靠谱的
实际 IR 不一定是 1mA,装上就可能没反应
→ 滑动变阻器一端接 5V、一端接 GND,中间抽头输出
→ 0~5V 连续可调 → 可现场调节检测阈值 ✓

⑤ 电源去耦/滤波电容#

电源不是理想电源,有噪声,所有元器件都要加电容滤波。

位置电容作用
电机回路并联小电容改善直流有刷电机产生的高频脉冲噪声
VIN 部分储能电解电容 + 100nF储能 + 滤高频
比较器的 5V电容滤波
红外分压电阻两端并联100pF滤除红外接收管收到的高频噪声

储能电容的作用#

实际安装时 6V 到电池可能有一根很长的走线。开关突然闭合时,外部电源给这一侧供电有一定反应时间。

画 PCB 时可以把该电容放在电机安装端口旁边,这样电容能提供瞬态大电流:开关闭合瞬间优先给电机供能,防止电压跌落。

同时电机产生感应电动势或噪声时,电容把噪声压下来。

两个作用:提供瞬态大电流防电压跌落 + 滤除电机高频干扰。

复制第二路#

实物有两个电机,把已画好的电路整体复制一份。

LM393 是双通道比较器:

8 个引脚:1、2、3 = 比较器 1;5、6、7 = 比较器 2;4 = GND、8 = VCC
买一颗芯片里面就已经包含两个比较器
本车两个电机正好用两个比较器,共用同一颗芯片

因为是同一颗芯片、共用电源,复制出来的这一路 5V 供电端口可以删掉。

但上拉电阻必须保留,别顺手把它也一起删了。

同一颗芯片的多通道,电源只画一次,这个技巧很实用。

电源电路#

电源轨设计#

输入:四节 5 号电池串联 = 6V
需要:6V → 5V → 3.3V

(额外加一个 3.3V 是为了演示 LDO 用法,实际可以不用 3.3V、直接用 5V。)

5V、3.3V 只给信号处理电路供电,没必要用开关电源,用 LDO 即可。

LDO 的关键参数:最小稳压压差#

想输出 5V,输入必须 > 5V + 最小压差
常见值:0.3V / 0.7V / 1.4V,有的更高

AMS1117-3.3 / -5V 这类芯片的最小压差通常大于 1V:

最小压差要输出 5V 需要的最小输入
1.5V6.5V
1.2V6.2V

否则 6V 输入进去,输出只有 4.8V。

压差小的芯片(0.3/0.5V)价格会贵一些。

采用的方案#

选不到合适的,就用分立元器件搭线性稳压:

6V →(5.6V 稳压管 + 三极管)→ 5V →(AMS1117-3.3)→ 3.3V

节点电压 5.6V,减去三极管 Vbe 压降,得到约 5V。

电容配置:

位置电容
6V 输入处10µF(小电容即可,没必要大电容)
1117 输入/输出各 10µF
中间节点再加一个小电容滤波
5V 输出100nF 储能/滤波
输出端再挂两个电容

稳压管限流电阻的计算#

已知:稳压管 5.6V,输入 6V → 电阻两端电压 ≈ 0.4V(6 − 5.6)。

流过该电阻的电流由两部分组成:① 稳压管电流 ② 三极管基极电流 IB。

稳压管工作电流取值范围:

反向电流约 0.5mA 时就开始有比较稳定的电压
最大可达 20mA 甚至 50mA,与封装的功率有关
实际取值一般取 1mA ~ 10mA
本例取中间值 5mA 左右

IB 的估算:

后级工作电流估算:5V 主要供给两个 10K 分压电阻 + 比较器 → 约 10mA
再加下面 3.3V 那部分约 10mA → 后级最多约 20mA
取 IC 最大 20mA,β = 100 → IB = 20mA / 100 = 0.2mA
→ 非常小,基本可忽略不计

电阻计算:

电流 ≈ 5mA,电压 = 0.4V
R5 = 0.4V / 5mA = 0.08K = 80Ω
实际取 82Ω

该电阻只流过 5mA,很小,选 0805 封装即可。

收尾补充#

三处细节:

  1. 三极管加一个下拉电阻(基极与地之间),增强电路稳定性。
  2. 补画两个红外发射管(前面漏画了)。实物一共 4 个 LED:2 个接收管 + 2 个发射管。封装一定选普通插件封装(直插)。
  3. 加两个指示 LED(0805 贴片)。某侧红外接收管收到红外信号时 LED 点亮,能实时看出该侧电机在工作,方便后期调试。限流电阻取 1K。

整个项目的电路清单#

功能模块元件关键参数
黑线检测 ×2红外发射管 + 红外接收管接收管反接;分压电阻 1K
信号比较 ×2LM393(双通道)参考电压用滑动变阻器 0~5V 可调
比较器上拉上拉电阻OC 输出必须加
电机驱动 ×2SS8050 + 基极电阻基极总阻值 < 860Ω,取 820Ω
续流保护 ×21N4007电机两端反并联
储能滤波电解电容 + 100nF + 100pF靠近电机端子
电源6V 电池 → 5.6V 稳压管 + 三极管 → 5V → AMS1117-3.3 → 3.3V稳压管限流电阻 82Ω

用到的知识点#

欧姆定律 → 算分压电阻、基极电阻、限流电阻
电阻的限流/分压 → 红外分压、参考电压分压
电容的储能/滤波 → 储能电容、去耦电容
电感/续流二极管 → 电机续流回路
二极管 → 续流、防反接
三极管开关 → 电机驱动,基极电阻计算
比较器 → 黑线判断,OC 输出加上拉
LDO / 线性稳压 → 6V → 5V → 3.3V

能独立做完这个项目,前面 105 集就没白学。

坑#

  • 红外接收二极管必须反接;参考电压必须用可调电阻,硬分压基本没反应。
  • LM393 是 OC 输出,上拉电阻不能省。
  • 基极电阻不能取 0Ω(会烧 LM393),也不能抄 1K/10K,得按负载电流算。
  • 电机必须加续流二极管,滤波电容必须靠近电机端子。
  • LDO 的 dropout 压差要查手册,6V 输入想输出 5V,压差大的芯片做不到。
实战项目 纯硬件循迹小车
https://me.622168.xyz/posts/hardware/33-line-following-car/
作者
Shaw 的小屋
发布于
2026-09-18
许可协议
CC BY-NC-SA 4.0