专门做顶账房的网站,西安响应式网站,客户对网站设计的要求,企业关键词优化公司关于ESP32PWM的简要说明
ESP32 SoC 满载了非常有用的外设#xff0c;PWM 就是其中之一。是的。ESP32 的芯片中有一个专用的 PWM 硬件模块。脉宽调制或简称PWM是一种成熟且广泛使用的供电技术。
您可以使用 ESP32 的 PWM 来驱动 LED、电机#xff08;普通直流电机和无刷电机… 关于ESP32PWM的简要说明
ESP32 SoC 满载了非常有用的外设PWM 就是其中之一。是的。ESP32 的芯片中有一个专用的 PWM 硬件模块。脉宽调制或简称PWM是一种成熟且广泛使用的供电技术。
您可以使用 ESP32 的 PWM 来驱动 LED、电机普通直流电机和无刷电机和智能灯。ESP32 中的 PWM 控制器由两个主要子模块组成LED 控制或 LEDC 外设和电机控制脉宽调制器或 MCPWM 外设。
尽管我们将 ESP32 中的 PWM 演示限制为衰落 LED但最好了解一下 ESP32 中带有输入捕获模块的电机控制 PWM MCPWM 模块。
如果您曾经使用过无刷直流 BLDC 电机您就会意识到感测转子位置使用霍尔效应传感器对于精确速度控制的重要性。
ESP32发光二极管LEDC
ESP32 的 LEDC 外设由 16 个能够生成独立波形的 PWM 通道组成主要用于 RGB LED 控制但也可用于其他用途。
关于 ESP32 中的 LED PWM 控制器您应该注意几个有趣的点。
16 个独立的 PWM 通道分为两组每组 8 个通道。
1 位和 16 位之间的可编程分辨率。
PWM波的频率取决于PWM的分辨率。
自动增加/减少占空比无需处理器干预。
配置ESP32的PWM通道
你还记得Arduino编程中的analogWrite函数吗它是负责在Arduino UNO和其他“Arduino”板中生成PWM的功能。
由于 ESP32 的 LED PWM 中的几乎所有内容都是用户可配置的通道、分辨率和频率因此我们将使用一组不同的专用函数来配置 ESP32 中的 PWM而不是使用“analogWrite”功能。
以下是驱动程序公开的所有 LEDC API 的列表。这些函数是为 ESP32 的 Arduino IDE 端口编写的。
ledcSetup频道、频率、resolution_bits;
ledcAttachPinpin channel;
ledcWritechannel Occupational cycle;
ledcReadchannel;
ledcWriteTone通道频率;
ledcWriteNotechannel note octave;
ledcReadFreqchannel;
ledcDetachPinpin;
在 8 个函数中我们将专注于前三个因为它们对于生成 PWM 更有用也是最低要求。
在 ESP32 中配置 PWM 通道时需要记住的几个要点
由于有 16 个 PWM 通道“channel”参数采用 0 到 15 之间的任何值。
接下来是PWM信号的频率。您可以根据需要设置频率例如 1 KHz、5 KHz、8 KHz 和 10 KHz。
PWM 的分辨率也是可配置的ESP32 PWM 可以编程在 1 位到 16 位分辨率之间的任何位置。
PWM频率和分辨率成反比并且取决于时钟源。因此在选择频率和分辨率值时要小心。
最后为PWM输出分配一个GPIO引脚。您可以分配任何 GPIO 引脚但在分配时要小心不要使用已经使用的 GPIO 引脚如 UART、SPI 等。
下表显示了几种常用的PWM频率和分辨率。 在ESP32中使用PWM的LED衰落
随着 ESP32 中 PWM 的所有必要信息的发布我们现在可以继续实施我们的第一个项目 ESP32 PWM 使 LED 褪色。这是一个非常简单的项目连接到 ESP32 GPIO 引脚的 LED 的亮度会逐渐反复增加和减少。[面向初学者的 ESP32 项目]
这个项目更多的是了解 LEDC 的功能ledcSetup、ledcAttachPin 和 ledcWrite以及如何在 ESP32 中生成 PWM而不是衰落的 LED 本身。
所需组件
ESP32 开发套件开发板
3 个 5 毫米发光二极管
220Ω电阻
3 x 5KΩ 电位计
面包板
连接线
微型 USB 连接线
电路图
下图显示了使用 ESP32 PWM 控制器淡入 LED 淡入淡出的连接。 法典
您可以使用任何 GPIO 引脚来输出 PWM 信号。所以我正在使用GPIO 16这也是UART2 RX引脚。接下来我们必须使用“ledcSetup”功能设置LEDC通道。第一个参数是通道。0 到 15 之间的任何值都可以作为通道给出。
下一个参数是频率。您可以提供任何频率但为了方便起见我将频率设置5KHz。此外您必须设置PWM的分辨率。此值必须是介于1和 16之间的数字。我选择了10位分辨率。
有关其余设置请参阅以下代码其中我注释了重要行。 注意您可以将多个 GPIO 引脚连接到同一个LEDC PWM 通道。如果这样做所有 GPIO 引脚将共享通道的属性分辨率和频率。
带ADC的ESP32脉宽调制器
ESP32 中 PWM 的一个重要特点是所有16个通道都可以独立配置即每个通道都可以有自己的分辨率和频率。为了演示这一点我们利用ADC外设通过转动电位计独立调整三个不同LEDC PWM通道的占空比。
三个 5KΩ 电位器连接到 ESP32 的三个 ADC 输入引脚。根据ADC的输出我们将设置三个PWM通道的占空比这些通道配置了不同的参数。
为了便于理解我将三个 LED红色、绿色和蓝色连接到三个 GPIO 引脚。这三个GPIO引脚连接到三个不同的LEDC PWM通道每个通道都使用自己的频率和分辨率进行初始化。 要记住的另一个重要点是 ESP32 的 ADC 分辨率为 12 位。因此我们必须仔细地将其映射到PWM分辨率以获得全方位的控制。
电路图
下图显示了使用ADC电位计调整PWM通道占空比的连接。 法典 结论
有关 ESP32 PWM 外设的完整教程。您学习了如何在 ESP32 中使用 PWM 来淡入 LED 的淡入淡出如何配置 PWM 通道、设置频率和分辨率。您还学习了如何独立配置 ESP32 中的 PWM 通道。