开发硬件模块介绍

Tutorial: 卓越工程师 Category: 嵌入式 Published: 2026-10-23 11:05:29 Views: 1 Likes: 0 Comments: 0

307.2、开发硬件模块介绍

一、开发硬件模块介绍

本节介绍“太阳能追光路灯”需要使用的硬件。视频主要展示 Arduino Uno R3 兼容板、课程方加焊的扩展排针,以及太阳能板、舵机、光敏模块、充放电控制板等部件,没有编写或展示业务代码,因此本节不提前收录后续源码。

先从整体上看,项目实际包含两套相互配合但职责不同的系统:

追光控制:光敏模块 → Arduino Uno → 两只舵机 → 改变太阳能板朝向

能量管理:太阳能板 → 太阳能充电/照明控制板 → 18650 电芯
                                            ↓
                                           灯板

视频没有展示 18650 电芯向 Arduino 和两只舵机供电的接线,因此不能仅凭本节认定整套追光系统已经完全由太阳能供电。课程中的太阳能控制板主要负责太阳能板、电芯和灯板之间的充放电与自动照明。

1.1 主控板

1.1.1 Uno R3 兼容板的作用

课程使用的是一块 Arduino Uno R3 兼容板。它负责:

  • 读取四个光敏电阻模块的模拟输出;
  • 比较太阳能板上下、左右方向的光照差异;
  • 向两只 SG90 舵机发送控制信号;
  • 让二维云台逐步调整太阳能板的朝向。

官方 Arduino Uno R3 以 ATmega328P 为主控,提供 14 个数字输入/输出和 6 个模拟输入。视频幻灯片明确写有“UNO R3 CH340G”,说明课程实物采用 CH340G 作为 USB 转串口芯片;官方 Uno R3 则使用 ATmega16U2 处理 USB 通信。两者运行 Arduino 草图的基本方式相同,但电脑端识别串口时所需的驱动可能不同。

初学者常用的几组接口如下:

接口本项目中的用途注意事项
A0~A3读取四路光敏模块的 AO 模拟量读到的是电压经 ADC 转换后的数值,不是直接以 lux 表示的照度
数字引脚 9、10分别控制二维云台的两只舵机是控制信号,不是舵机动力电源
5V为低压模块提供 5 V 电源能否带动两个舵机取决于供电来源和总电流,不能只看电压
GND所有控制信号的共同参考点使用外部舵机电源时,其负极仍要与 Uno 的 GND 共地
USB Type-B 接口连接电脑、上传程序,并可为开发板供电必须使用能够传输数据的 USB 线,只有充电功能的线不能上传程序
DC 圆孔与 VIN外部输入电源不能把较高的外部电压误接到 5V 引脚
1.1.2 课程方加焊的扩展排针

视频约 00:22~01:17 展示了课程方在发货前加焊的排针。讲师指出,其中标为 5V 的多个位置在电气上互相连通,多个 GND 位置也互相连通,目的是让多只传感器和舵机更方便地插线。

这些排针需要正确理解:

  • 它们是把同一条 5V 电源网络复制到多个插口,不是生成多路相互独立的 5 V 电源。
  • 多一个插口只解决“无处插线”的机械问题,不会增加 USB、电源稳压器或导线能够提供的总电流。
  • 所有接到这些 5V 排针上的负载,其电流最终仍来自同一电源网络。
  • 这是课程实物板的加焊结构,并非每块标准 Uno R3 都自带;拿到不同厂家的板子时,应按实物丝印和原理图确认。

两只舵机启动、快速转动或堵转时会产生较大的瞬时电流,可能导致 5 V 电压下降、Uno 复位、USB 断连或稳压器发热。Arduino 官方舵机教程建议使用规格合适的外部电源为舵机供电。采用外部 5 V 电源时,接线关系应是:

外部 5 V 正极 → 两只舵机的电源正极
外部电源负极 → 两只舵机的 GND
外部电源负极 ─┬→ Arduino GND
               └→ 形成控制信号的公共参考地

Arduino 数字引脚 9、10 → 两只舵机各自的信号线

不要把舵机电源线接到普通 GPIO,也不要因为排针数量足够就忽略供电容量。课程中的短时桌面演示能够运行,不等于任何 USB 口或任何 Uno 兼容板都能长期安全带动两只舵机。

1.1.3 发货前测试和 USB 线

讲师说明,课程方会预先焊好排针,并烧录点灯程序检查开发板是否能工作。点灯测试主要能确认:

  • 主控能够启动;
  • 程序至少能够成功上传并运行;
  • 板载 LED 及其对应输出能够按程序变化。

它不能证明每一个数字口、模拟口、扩展排针和电源通道都没有问题。首次使用仍应检查焊点是否短路、排针是否虚焊,并用万用表确认扩展 5V、GND 与原板对应网络确实连通。

视频把 USB 线称为“烧录线”。更准确地说,它是一根 USB Type-B 数据线:程序先由电脑通过 USB 发送给板上的 CH340G,CH340G 再把 USB 数据转换为主控能够接收的串口信号。若电脑没有出现串口,排查顺序通常是数据线、USB 接口、CH340 驱动和设备管理器,而不是立刻判断主控板损坏。

1.2 其他硬件

视频约 01:37 后展示其余部件。结合配套接线图和后续课程,完整功能所需部件可整理如下:

部件数量/形式在项目中的职责
SG90 微型舵机2 只一只负责左右旋转,另一只负责上下俯仰
FPV 二维舵机云台1 套把两只舵机组合成两个方向可动的机械结构
光敏电阻模块项目使用 4 个分别感知太阳能板上下左右的相对光照
路灯支架1 套支撑云台、太阳能板、灯和相关模块
太阳能板1 块把光能转换为直流电能
太阳能充电/照明控制板1 块连接太阳能板、电芯和灯板,管理充电与自动亮灯
单节 18650 电池盒与电芯1 套储存太阳能板获得的能量,并在暗环境下为灯板供电
LED 小灯/灯板1 个模拟路灯照明负载
舵盘、螺钉和连接件随云台配套把舵机输出轴与云台活动件连接起来
热熔胶枪和胶棒需自行准备固定太阳能板和部分轻型模块;讲师明确说明套件不包含胶枪
1.2.1 SG90 舵机和二维云台

SG90 是带有位置控制电路的微型舵机。它不是只分“转”和“不转”的普通直流电机,而是接收周期性控制脉冲后,尝试把输出轴保持在目标角度。

课程把所用 SG90 称为“180 度舵机”,但不能把外壳名称当作绝对机械范围:不同厂家和批次的 SG90 兼容产品,其可用脉宽、角度范围和机械限位可能不同。官方 TowerPro SG90 Analog 页面给出的标称工作电压为 4.8 V,并要求通过外部电源供电;实际使用课程套件时仍应以手中舵机的标签和规格为准。

二维云台把两个转轴叠加:

  • 下方舵机带动整个上部结构左右旋转,可理解为水平或偏航轴;
  • 上方舵机改变太阳能板的俯仰角度,可理解为垂直或俯仰轴。

安装前应先用程序把舵机转到安全中位,再装舵盘和支架。不要用手强扭已通电的舵机,也不要直接命令它撞向机械极限;云台碰撞、导线拉紧或太阳能板过重都会让舵机堵转并显著增加电流。

视频实物中的舵机线通常为棕色或黑色 GND、红色电源、橙色或黄色信号,但线色不是电气标准。插线前应以舵机标签、插头顺序和资料为准。

1.2.2 光敏电阻模块

光敏电阻的阻值会随光照变化,模块再通过分压电路把这种变化转换为电压。Arduino 的 ADC 读取该电压后得到一个数字量,课程口述中的“AD 值”更准确地说是 ADC 转换结果。

视频中的常见四针模块带有:

  • VCC:模块电源;
  • GND:地;
  • AO:连续变化的模拟输出;
  • DO:经过比较器判断后的数字输出。

项目配套接线图只使用 AO、VCC 和 GND,没有使用 DO。四个模块被布置在太阳能板的上、下、左、右,通过比较成对的 ADC 读数判断应该调整哪只舵机。

ADC 数值只能表示当前电路条件下的相对采样结果,不能直接当作照度值。模块个体差异、供电电压、安装角度、遮挡和环境散射光都会影响读数,实际组装后必须逐路观察和校准。模块上的可调电位器常用于设置 DO 比较阈值;项目使用 AO 时,追光门限主要由程序中的比较逻辑决定,不能靠盲目旋转电位器解决所有方向误差。

1.2.3 支架、灯和热熔胶

支架只承担机械支撑,不参与光照检测或充电控制。组装时需要同时考虑:

  • 云台两轴转到边界时不能碰到灯杆;
  • 舵机和光敏模块的线要留有活动余量,但不能卷入关节;
  • 太阳能板不能遮住四个方向的光敏元件;
  • 灯光不能直接照到某一只光敏元件,否则可能干扰追光判断;
  • 重心不能离支架过远,以免底座倾倒或舵机长期承受过大负载。

热熔胶适合原型阶段定位轻型零件,但不能代替所有螺钉,也不能涂进舵机输出轴、齿轮、光敏电阻感光面或电气插座。胶枪喷嘴和熔胶温度很高,操作后还应等待胶体冷却再移动结构。

1.2.4 太阳能板、控制板和 18650 电芯

太阳能板背面有正、负极焊点。它把入射光转换为直流电能,但输出能力会随光照强度、入射角、温度和负载变化。视频所说“通过芯片把电量转换给 18650”应理解为:**太阳能板的输出先进入匹配的充电/照明控制板,由控制电路调节并管理单节锂离子电芯的充电。**不能把太阳能板直接接到裸电芯。

幻灯片中的控制板端子已经明确标出:

控制板端子应连接的对象
太阳能+、太阳能-太阳能板正、负极
电池+、电池-18650 电池盒正、负极
灯板+、灯板-LED 灯板正、负极

接线时应以 PCB 丝印为准,逐组核对正负极;不能只凭红黑线判断,也不能把三组端子互换。视频没有给出控制板型号、允许的太阳能输入、电池充电电流、过充/过放保护范围和灯板额定参数,因此这些数据必须通过所购模块规格确认,不能从外观猜测。

课程描述的工作状态是:

  1. 光照足够时,太阳能板产生输出,控制板关闭灯板,并在条件满足时为 18650 电芯充电。
  2. 光照不足、太阳能输入下降时,控制板开启灯板,由电芯向照明负载供电。

这类“天黑亮灯”的判断通常利用太阳能输入状态,而追光方向则由四个光敏模块和 Arduino 判断。两套判断不要混为一谈。

18650 是外形尺寸的统称,无法仅凭蓝色外皮确定电芯品牌、容量、最大电流或是否自带保护。使用前要确认电芯化学体系、极性和状态,不使用外皮破损、变形、漏液或异常发热的电芯。锂离子电芯必须使用匹配的恒流/恒压充电和保护方案,不能用普通直流电源直接充电。

二、首次接线前的检查顺序

  1. 对照实物丝印确认 Uno 兼容板型号、USB 芯片和所有加焊排针的用途。
  2. 断电后用万用表通断档确认扩展 5V 只与 5 V 网络相连、扩展 GND 只与地相连,二者之间没有短路。
  3. 分别核对两只舵机的电源、地和信号线,并规划是否使用独立的 5 V 舵机电源。
  4. 给四个光敏模块贴上“上、下、左、右”标签,记录各自接到哪个模拟输入;配套接线图与最终源码均为“下 A0、右 A1、左 A2、上 A3”,装好后仍应通过实际采样确认标签与线束没有接错。
  5. 按 PCB 丝印核对太阳能板、电池和灯板三组端子的正负极,确认无误后才装入 18650 电芯。
  6. 先分别验证开发板、传感器、舵机和灯板,再进行整机拼接;这样出现故障时更容易定位。

核对依据

  • 本地 videos/307.2、开发硬件模块介绍.mp4 与对应转录:核对 Uno R3 兼容板、加焊排针、发货前点灯测试、USB 数据线和其余硬件的讲解顺序;视频时长约 3 分 29 秒。
  • 视频中展示的配套 太阳能追光路灯.pptx 幻灯片,以及本地 uno r3 引脚图.jpg、接线图.jpg 和最终 6.ino:核对主控接口、光敏模块数量、舵机信号引脚以及太阳能控制板的三组端子;本节没有展示源码,最终代码仅用于交叉核对硬件用途。
  • Arduino Uno R3 官方资料:核对官方 Uno R3 的 ATmega328P、数字接口、模拟输入和基本板载资源。
  • WCH CH340/CH341 官方驱动与资料:核对 CH340G 的 USB 转串口用途及驱动来源。
  • Arduino:Servo Motor Basics:核对舵机三线连接、高动态电流和外部供电原则。
  • TowerPro SG90 Analog:核对正品 SG90 Analog 的标称工作电压、外部供电和基本机械规格;课程套件中的兼容舵机仍应以实物参数为准。
  • Panasonic Lithium Ion Batteries Handbook:核对锂离子电池恒流/恒压充电及防短路、反装和异常充电的安全原则。