Menu
CoddyTech

旋钮调光器

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

旋钮会让 analogRead() 返回 0 到 1023 之间的数字,而 analogWrite() 需要 0 到 255 之间的数字。这两个范围不匹配,所以用 map() 将一个范围转换为另一个范围:

int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);

旋钮转到最低处时返回 0,LED 会熄灭;转到最高处时返回 1023,转换后就是 255,LED 会完全亮起。中间的每个位置都会对应一种中间亮度。

直接把读数写入 LED 不行:analogWrite() 只接受 0 到 255,所以像 600 这样的读数会导致亮度不正确。

challenge icon

挑战

简单

旋钮连接在 A0,LED 连接在引脚 9。让旋钮控制亮度:

  • 读取旋钮
  • 用 map() 将读数转换为 0 到 255
  • 将数值写入 LED,然后等待 10 ms

按“运行”,转动旋钮,然后按“检查”。

亲手试试

const int knobPin = A0;
const int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // 读取旋钮的值,将其映射到 0..255,再写入 LED
}
quiz icon自我测试

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

输出中的所有课

自己练习: Arduino 在线编辑器