旋钮条形图
本课属于 Coddy Arduino 学习旅程的“输出”单元。第 18 课,共 24 课。
一排 LED 可以用条形显示一个数字:点亮的 LED 越多,数字就越大。这里的数字来自旋钮。
先把读数转换为要点亮的 LED 数量,范围是 0 到 5:
int count = map(analogRead(A0), 0, 1023, 0, 5);然后用 for 循环遍历每个 LED,并逐个判断。位置在 count 之前的 LED 会点亮,其余的会熄灭:
for (int i = 0; i < 5; i++) {
if (i < count) {
digitalWrite(ledPins[i], HIGH);
} else {
digitalWrite(ledPins[i], LOW);
}
}else 很重要:当你把旋钮调低时,它会关闭不再属于条形的 LED。
挑战
中等旋钮连接在 A0 上,LED 保存在 ledPins 中。制作一个条形图:
- 用
map()将读数转换为 0 到 5 的数量 - 从数组中的第一个 LED 开始,点亮相应数量的 LED,并关闭其他 LED
- 等待 10 ms,然后重复操作
按“运行”并转动旋钮,然后按“检查”。
亲手试试
const int knobPin = A0;
int ledPins[] = {2, 3, 4, 5, 6};
void setup() {
for (int i = 0; i < 5; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// 将读取的值转换为 0 到 5 之间的数量
// 点亮前面对应数量的 LED,关闭其余的 LED
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器