在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在ESP32中使用PWM

CHANBAEK ? 來源:小小小向日葵 ? 作者:騎驢去相親 ? 2023-07-13 11:14 ? 次閱讀

關于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);

ledcAttachPin(pin, channel);

ledcWrite(channel, Occupational cycle);

ledcRead(channel);

ledcWriteTone(通道,頻率);

ledcWriteNote(channel, note, octave);

ledcReadFreq(channel);

ledcDetachPin(pin);

在 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 通道。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23277

    瀏覽量

    660897
  • 控制器
    +關注

    關注

    112

    文章

    16365

    瀏覽量

    178075
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5186

    瀏覽量

    213958
  • soc
    soc
    +關注

    關注

    38

    文章

    4165

    瀏覽量

    218273
  • ESP32
    +關注

    關注

    18

    文章

    971

    瀏覽量

    17276
收藏 人收藏

    評論

    相關推薦

    利用ESP32 PWM信號控制LED的亮度

    在本教程,我們將討論ESP32 開發板的 PWM(脈沖寬度調制)引腳。ESP32 開發板的所有 GPIO 引腳(Power、GND、Tx、Rx 和 EN 除外)均可用于獲取
    的頭像 發表于 08-12 15:21 ?1.6w次閱讀
    利用<b class='flag-5'>ESP32</b> <b class='flag-5'>PWM</b>信號控制LED的亮度

    什么是PWM?如何在esp32初始化配置?

    什么是PWM?如何在esp32初始化配置?
    發表于 02-17 07:19

    何在Windows 10上啟動/設置ESP8266/ESP32 RTOS環境?

    我在 Arduino IDE 上有一些關于 ESP8266/ESP32 的經驗。 請告訴我,如何在 Windows 10 上啟動/設置 ESP8266/
    發表于 05-19 10:33

    ESP32教程之如何在Windows系統上搭建開發環境

    本文檔的主要內容詳細介紹的是ESP32教程之如何在Windows系統上搭建開發環境。
    發表于 12-13 15:34 ?40次下載
    <b class='flag-5'>ESP32</b>教程之如<b class='flag-5'>何在</b>Windows系統上搭建開發環境

    如果在Zephyr內如何使用ESP32藍牙

    在Zephyr ESP32 藍牙驅動簡析一文簡要分析了esp32 藍牙如何集成進Zephyr,本文接著說明如果在Zephyr內使用ESP32藍牙。 在Zepher
    的頭像 發表于 06-07 16:42 ?3734次閱讀

    ESP32 SDIO 使用教程

    ESP32 SDIO 使用教程本文旨在說明如何使用標準的 ESP32-WROOM-32D 開發板進行 SDIO 的通信。本文檔適用于所有需要與 ESP32 SDIO slave 通信的方案
    發表于 11-23 17:51 ?233次下載
    <b class='flag-5'>ESP32</b> SDIO 使用教程

    ESP32_PWM學習總結

    esp32——PWM學習總結什么是PWMesp32初始化配置定時器配置通道配置修改輸出占空比方式使用軟件改變
    發表于 12-22 19:39 ?12次下載
    <b class='flag-5'>ESP32_PWM</b>學習總結

    esp32小車實驗

    esp32小車實驗了解esp32呼吸燈實驗驅動直流電機認識第一個傳感器使用wifi進行調參了解esp32環境搭建以及初識esp32我們所用的開發板跟視頻
    發表于 01-12 17:16 ?18次下載
    <b class='flag-5'>esp32</b>小車實驗

    ESP32系列芯片的規格

    ESP32是一款2.4GHz Wi-Fi和藍牙組合芯片,采用TSMC超低功耗40nm設計技術它旨在實現最佳功率和射頻性能,顯示出魯棒性、多功能性和靈活性在各種應用和電源場景的可靠性。ESP32系列芯片包括
    發表于 04-25 16:21 ?7次下載

    何在ESP32/ESP8266上使用MicroPython

    在本教程,我們將了解 MicroPython,它與 Python 有何不同,以及如何在 ESP32/ESP8266 上開始使用 MicroPython。此外,我們將看到一個 LED
    發表于 08-19 15:09 ?1.4w次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266上使用MicroPython

    使用Visuino DIY如何在M5StickC ESP32上顯示時間

    電子發燒友網站提供《使用Visuino DIY如何在M5StickC ESP32上顯示時間.zip》資料免費下載
    發表于 11-21 09:36 ?0次下載
    使用Visuino DIY如<b class='flag-5'>何在</b>M5StickC <b class='flag-5'>ESP32</b>上顯示時間

    【DFRobot Beetle ESP32-C3開發板試用體驗】WEBSOKET—PWM—LED

    的,用ESP32C3寫一個websocket服務器,用網頁來實現控制板載LED燈亮度的例子。 【實現思路】1、ESP32建立webserver。2、書寫一個ajax的網頁。3、配置LED燈的pwm。 1
    的頭像 發表于 11-28 14:11 ?1571次閱讀
    【DFRobot Beetle <b class='flag-5'>ESP32</b>-C3開發板試用體驗】WEBSOKET—<b class='flag-5'>PWM</b>—LED

    ESP32 PWM驅動電機

    ESP32 尋跡模塊測試 尋跡模塊測試 所選設備 ESP32使用PWM 示例代碼 尋跡模塊測試 所選設備 ’ ESP32 引腳 說明 16 需要先拉低在拉高,才能驅動電機 13
    發表于 03-20 11:37 ?4次下載
    <b class='flag-5'>ESP32</b> <b class='flag-5'>PWM</b>驅動電機

    如何使用ESP32的LEDC進行PWM控制?

    LEDC(LED控制器)是ESP32的一個功能強大的PWM(脈沖寬度調制)控制器。
    發表于 05-19 11:14 ?2550次閱讀
    如何使用<b class='flag-5'>ESP32</b>的LEDC進行<b class='flag-5'>PWM</b>控制?

    何在Arduino IDE安裝ESP32開發環境

    要在Arduino IDE中使ESP32開發板,您需要先安裝相應的開發環境。以下是在Arduino IDE安裝ESP32開發環境的步驟。
    的頭像 發表于 07-13 16:48 ?1.8w次閱讀
    如<b class='flag-5'>何在</b>Arduino IDE<b class='flag-5'>中</b>安裝<b class='flag-5'>ESP32</b>開發環境
    主站蜘蛛池模板: 五月综合激情网| 久久黄色网| 午夜看片影院在线观看| 国产精品www夜色影视| 色www国产阿娇| 亚洲狼色专区| 亚洲人在线| 黄色美女免费网站| 美女和美女| 国产叼嘿视频网站在线观看 | 久久99热精品这里久久精品| 亚洲大色| 国产jzjzjz免费大全视频| 偷偷鲁影院手机在线观看| 49vv婷婷网| 日本三级成人午夜视频网| 亚洲午夜小视频| 亚洲骚片| 美女天天色| 午夜大片男女免费观看爽爽爽尤物| 好黄好硬好爽好刺激| 亚洲成人高清在线| 成人永久免费视频| 免费视频www| 香蕉爱爱视频| www.99色| 亚洲一区二区在线视频| 免费一级特黄特色大片在线观看| 天天操天天摸天天碰| www.亚洲5555.com| 日韩色爱| 男人在线资源| 亚洲欧美一区二区三区麻豆| 丁香激情综合网| 91亚洲免费视频| 女人被男人免费播放网站| 九色视频网| 色多多影视| 久久久免费的精品| 四虎在线成人免费网站| 成人亚洲视频|