Menu
CoddyTech

旋钮条形图

本课属于 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。

challenge icon

挑战

中等

旋钮连接在 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
}
quiz icon自我测试

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

输出中的所有课

自己练习: Arduino 在线编辑器