从这里开始 · 04 / 16

电位器:模拟读数与 PWM 调光

转动电位器调节 LED 亮度,对照 A0 的 0–1023 读数和 D9 的 0–255 PWM 输出,理解两种范围的映射。

6 分钟入门
这一课,你会学到

将模拟读数映射为 PWM 输出。

理解原理

10 位输入范围为 0–1023,PWM 为 0–255。整数除以四将前者映射到后者。PWM 改变保持 HIGH 的时间比例,不改变 HIGH 本身的电压。

动手试一试

运行后依次把输入设为 0、512、1023,比较读数、PWM 数值和 LED 亮度。

连接说明

  • A0 — 电位器滑动端
  • 5V / GND — 电位器两端
  • D9 ~ — 经过电阻连接 LED

示例代码

代码用于说明硬件思路;实验台执行对应的教学模型,不编译代码。

void setup() {
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  analogWrite(9, reading / 4);
  Serial.println(reading);
}

检查你的理解

输入为 512 时,这里的 PWM 数值是多少?

查看解释

128。示例把输入整数除以 4。输入与输出的取值范围不同,PWM 也不会把 D9 变成真正的模拟电压输出。

从实验,再多走一步

把实验与基础概念连起来 · 帮助与 FAQ