从这里开始 · 04 / 16
电位器:模拟读数与 PWM 调光
转动电位器调节 LED 亮度,对照 A0 的 0–1023 读数和 D9 的 0–255 PWM 输出,理解两种范围的映射。
将模拟读数映射为 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 变成真正的模拟电压输出。