舵机光线仪表
本课属于 Coddy Arduino 学习旅程的“输出”单元。第 24 课,共 24 课。
在伺服电机的转臂上装一根指针,它就变成了一个仪表,就像汽车里的速度表一样。这里,它显示光线有多亮。
和夜灯一样,模块的 AO 值在光线越亮时读数越低:黑暗中约为 1023,光线充足时接近 0。仪表应该在光线越亮时指向越高的位置,所以转换方向要反过来。和光度计一样,把新范围倒过来传给 map():
int angle = map(reading, 0, 1023, 180, 0);读数为 0 时,表示光线充足,对应 180 度;读数为 1023 时,表示黑暗,对应 0 度。中间的读数也会对应到中间的位置,只是方向相反。
挑战
中等光线传感器的 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,转动机械臂,打印角度
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器