Arduino & IoT Academy · 课时

analogWrite 0–255

设置占空比以控制 LED 亮度

第 2 / 4 课13 个步骤

analogWrite 0–255 是 CoddyKit 上的免费 Arduino & IoT Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Arduino & IoT Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Arduino & IoT Academy 课程共包含 4 节课。

实现 PWM 的命令

要产生 PWM,只需调用一个函数:analogWrite。向它传入一个引脚和一个电平,芯片就会为您处理快速脉冲。

analogWrite(9, 200);

数值范围是 0 到 255

第二个参数的范围是 0 到 255。这共有 256 个取值,因为一个字节恰好可以存储这么多值。

0 表示完全关闭

传入 0 时,占空比为零。引脚始终保持 LOW,因此 LED 完全不亮。

analogWrite(9, 0); // LED off

255 表示完全开启

传入 255 时,占空比为 100%。引脚的行为就像 digitalWrite HIGH 一样,因此 LED 会以全亮度发光。

analogWrite(9, 255); // LED full

中间值可以调光

128 大约表示一半功率,因此 LED 看起来约有一半亮度。中间的其他数值可以提供平滑的亮度范围。

analogWrite(9, 128); // about half

数值越大,灯光越亮

关系很简单:数值越高,开启的时间越长,亮度也越高。较小的数值会让 LED 变暗。

选择支持 PWM 的引脚

analogWrite 只有在带有波浪号标记的引脚上才能实现真正的 PWM。在不支持 PWM 的引脚上,它只会在中间值处直接切换为完全开启或完全关闭。

先将引脚设为 OUTPUT

和普通 LED 一样,请在 setup 中将引脚声明为 OUTPUT,这样在调用 analogWrite 之前,它才能驱动电流。

pinMode(9, OUTPUT);

一个简短的可运行示例

完整思路如下:在 setup 中将引脚设为 OUTPUT,然后在 loop 中让它保持稳定的中等亮度。

void setup() {
  pinMode(9, OUTPUT);
}
void loop() {
  analogWrite(9, 100);
}

亮度并非完全线性

将数值加倍,并不会让看起来的亮度恰好加倍,因为人眼感知光线遵循曲线,而不是直线。

电机同样适用

analogWrite 不只适用于 LED。通过驱动器,同一个 0 到 255 的数值也可以设置电机的转速。⚙️

快速检查

请确认您已经清楚数值的范围。

回顾:analogWrite 的电平

analogWrite 接收一个引脚和一个介于 0 到 255 之间的数值:0 表示关闭,255 表示全开,而中间值可以在支持 PWM 的引脚上实现平滑调光。🌟

免费开始

用 AI 导师学习 C++ — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「analogWrite 0–255」课时是免费的吗?

是的 — 「analogWrite 0–255」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Arduino & IoT Academy 课程的其余内容,请升级到 CoddyKit PRO。 Arduino & IoT Academy 课程共包含 4 节课。

「analogWrite 0–255」这节课中我会学到什么?

设置占空比以控制 LED 亮度 你通过在浏览器中直接运行的动手代码来练习 Arduino & IoT Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Arduino & IoT Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Arduino & IoT Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「analogWrite 0–255」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Arduino & IoT Academy 课中编写并运行代码吗?

能。每节 Arduino & IoT Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. PWM 实际做了什么
  2. analogWrite 0–255
  3. 让 LED 渐亮渐暗
  4. 用旋钮控制 LED 亮度
← 返回 Arduino & IoT Academy