18 / 20
追踪太阳的太阳能板
比较两个光敏传感器,让舵机带动太阳能板朝向光源。
运行此实验 →实验目标
改变太阳位置,对照传感器差值与面板角度。
工作原理
比较两个光敏传感器,让舵机带动太阳能板朝向光源。 差值很小时不应移动舵机,死区可避免平衡点附近抖动。 此处为配套教学模型,硬件示例基于经典 ESP32 与 Arduino-ESP32 3.x;网络、声波、负载和机械运动均为简化演示。
动手试一试
- 打开此实验
- 改变太阳位置,对照传感器差值与面板角度。
接线
- GPIO 34 / 35 — 左/右光敏分压器 · 3V3
- GPIO 18 — 面板舵机
示例代码
#include <ESP32Servo.h>
Servo arm;
int angle = 90;
void setup() {
arm.setPeriodHertz(50);
arm.attach(18, 500, 2400);
}
void loop() {
int left = analogRead(34), right = analogRead(35);
if (abs(left - right) > 100) angle = constrain(angle + (right > left ? 1 : -1), 0, 180);
arm.write(angle);
delay(30);
}检查理解
为什么加入死区?
查看答案
差值很小时不应移动舵机,死区可避免平衡点附近抖动。