脉冲宽度调制 (PWM) 是物理学、电子学和电信中广泛使用的概念。它被定义为从数字输入中获取模拟波形的一种信号调制形式。
在 Arduino 应用中,PWM 在改变信号强度方面非常有用,例如 LED 二极管的亮度、传感器的 ping 时间或为伺服电机供电。
为什么 Arduino 需要 PWM?
在 Arduino 项目中需要 PWM 技术的一个主要原因是它有助于生成连续波形。考虑一个 LED 的例子。任何数字信号都有两个值:ON或OFF,可以分别用Arduino 5V和0数字电池调节,如下图。
但是,除了打开或关闭设备之外,您可能对某些应用程序更感兴趣。您需要一个连续的模拟波形来控制智能灯泡中 LED 的亮度或不透明度。
例如,Philip Hue 灯泡有一个相关的 PWM 功能,作为 Alexa 技能应用:'Alexa,将厨房亮度提高到 60%' (Alexa,厨房灯 60%)。此命令可以控制房间的亮度。
如何在 Arduino 项目中使用 PWM
Arduino IDE 有一些内置示例可以使用 PWM 获得不同的结果。要探索 Arduino 项目中的 PWM 命令,您可以轻松安装适用于 Windows 10、Linux 或 Mac 的 IDE。
此外,您需要将 Arduino Uno 或 Mega 板连接到 LED 并使用模拟功能对其进行控制。必要的组件包括:
- 电位器和电阻 10 kOhm
- 面包板和电线
- Arduino IDE
Arduino Project Hub 有一个说明性示例,其中显示了最终电路(参考:https://create.arduino.cc/projecthub/muhammad-aqib/arduino-pwm-tutorial-ae9d71), 但这是一个无关紧要的例子。您的实际电路将遵循 Arduino IDE 中提供的代码和说明。
代码有效
打开 Arduino IDE 并转到 File>;示例>模拟> AnalogWriteMega 。此代码在数字电池 2 至 13 上调暗和点亮 LED 一段时间。此代码仅适用于 Arduino Mega 板。
查看文章:Arduino IDE命令总结了解基本命令的含义包括const()、setup()、loop()和延迟()。
另外,还有一个 for 命令将引脚 2 到 13 设置为最低到最高级别。
接下来,使用一个名为analogWrite()的命令来控制LED的亮度,从数字电池2中的最低值(0), 到数字电池的最高值 13 (255)。提供 100 毫秒的延迟以记录 LED 的转换(更改其模拟状态)。
本文将再举一个基于模拟输出的LED着色示例。为此,请转到 文件>;示例>模拟 并选择 Fading。 此代码可用于 Arduino Uno 板。 LED 灯从 9 号引脚连接到地面。
在这个例子中,一个analogWrite命令被用来修改fy 0到255范围内的淡入淡出值。不透明度为淡入淡出效果延迟30毫秒显示。
脉冲宽度调制 (PWM) 是确保您的 Arduino 项目发生变化和进步的重要方法。
您在自己的物联网项目中使用过PWM吗? 您在使用 Alexa 时是否遇到过任何示例,例如 PWM,类似于 Philip Hue 灯泡? 请在下面的评论部分分享!
希望你成功。
评论