太阳能跟踪器 V2.0:进阶 DIY 光伏自动追日系统
元件清单
| Arduino UNO | ×1 | |
| SG90 9g 舵机 | ×4 | 双轴:方位角 + 俯仰角,每轴双舵机增扭 |
| 定制 Arduino Shield(含舵机/传感器插座) | ×1 | 即插即用,避免飞线 |
| 定制传感器支架 PCB(含 4 路光敏电阻) | ×1 | 四分位光敏检测太阳位置 |
| 母对母杜邦线 | ×5 | 连接传感器支架与 Shield |
所需工具
- 激光切割机(切割 3mm/1.5mm 胶合板)
V2.0 核心改进
- 模块化接线: 定制 Shield 替代传感器扩展板,舵机与光敏电阻均采用排针/杜邦线插拔,极大降低接错率,适合教学场景
- 结构轻量化: 将 6mm 板材改为 3mm,减轻舵机负载,降低成本与国际邮费
- 全开源: 所有 PCB(Shield、传感器支架、兼容 Nano 版)、激光切割图纸、固件托管于 GitHub,零门槛复现
硬件架构
- Shield: 直接插在 UNO 上,提供 4 路舵机 3Pin 接口(电源/地/信号)+ 4 路光敏电阻信号接口(A0-A3)
- 传感器支架: 十字形安装 4 个光敏电阻(上/下/左/右),通过比较四象限光强差值计算太阳偏移
- 机械结构: 激光切割胶合板,双舵机推杆驱动方位轴,双舵机推杆驱动俯仰轴,结构紧凑
固件逻辑(GitHub 完整代码)
// 核心循环伪代码
void loop() {
// 1. 读取四分位光敏值
int tl = analogRead(A0); // 左上
int tr = analogRead(A1); // 右上
int bl = analogRead(A2); // 左下
int br = analogRead(A3); // 右下
// 2. 计算水平/垂直光强差
int horzDiff = (tl + bl) - (tr + br); // 左右差
int vertDiff = (tl + tr) - (bl + br); // 上下差
// 3. 死区判断(避免抖动)
if (abs(horzDiff) > THRESHOLD) adjustAzimuth(horzDiff > 0 ? LEFT : RIGHT);
if (abs(vertDiff) > THRESHOLD) adjustElevation(vertDiff > 0 ? UP : DOWN);
// 4. 舵机平滑移动(限幅保护)
// 5. 夜间/阴天保护:光强均值过低则进入休眠/回零位
}
获取资源
所有文件托管于 GitHub:BrownDogGadgets/SolarTracker
PCB/:Shield、传感器支架、Nano 版原理图与 GerberLaserCut/:3mm/1.5mm 胶合板切割图(DXF/SVG),需 M3 螺丝、#2 木螺丝组装Firmware/:Arduino 固件(含校准、死区、限位保护)V1.0/:旧版文件存档
组装提示
- 舵机输出轴建议加金属舵盘,防止塑料齿轮剥离
- 光敏电阻引脚焊接后用热缩管绝缘,防止短路
- 户外长期运行建议:加装防水罩、光伏板+锂电池供电、看门狗复位
制造工艺
- 太阳能电池:从早期实验到现代光伏技术的演进与未来展望
- Arduino 实时太阳能电池板监测:低成本数据采集系统
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- 物联网双轴太阳能跟踪器:基于 Arduino 与 Cayenne 的智能能源管理
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南