analogWrite 0–255
设置占空比以控制 LED 亮度
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 off255 表示完全开启
传入 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 反馈 — 无需本地设置。
此课程中的所有课时
- PWM 实际做了什么
- analogWrite 0–255
- 让 LED 渐亮渐暗
- 用旋钮控制 LED 亮度