Menu
CoddyTech

舵机光线仪表

本课属于 Coddy Arduino 学习旅程的“输出”单元。第 24 课,共 24 课。

在伺服电机的转臂上装一根指针,它就变成了一个仪表,就像汽车里的速度表一样。这里,它显示光线有多亮。

和夜灯一样,模块的 AO 值在光线越亮时读数越低:黑暗中约为 1023,光线充足时接近 0。仪表应该在光线越亮时指向越高的位置,所以转换方向要反过来。和光度计一样,把新范围倒过来传给 map():

int angle = map(reading, 0, 1023, 180, 0);

读数为 0 时,表示光线充足,对应 180 度;读数为 1023 时,表示黑暗,对应 0 度。中间的读数也会对应到中间的位置,只是方向相反。

challenge icon

挑战

中等

光线传感器的 AO 接在 A0 上,舵机接在引脚 9 上。让机械臂充当光线指示器:

  • 光线越暗,机械臂越指向 0 度;光线充足时,指向 180 度
  • 使用 map(),并反向设置新范围
  • 输出角度,每次等待 50 ms

按“运行”,然后移动传感器上的光线滑块,再按“检查”。

亲手试试

#include <Servo.h>

const int lightPin = A0;
Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {
  // 读取光照值,将其反向映射到 180..0,转动机械臂,打印角度
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输出中的所有课

自己练习: Arduino 在线编辑器