<strike id="0k9r3"><p id="0k9r3"></p></strike>
  • <form id="0k9r3"></form>
    <nav id="0k9r3"></nav>
    <em id="0k9r3"><p id="0k9r3"></p></em>
  • <tr id="0k9r3"><source id="0k9r3"></source></tr>
    <form id="0k9r3"></form>
    <sub id="0k9r3"></sub>

      <sub id="0k9r3"><address id="0k9r3"></address></sub>
      1. <form id="0k9r3"></form>

        24小時聯系電話:18217114652、13661815404

        中文

        您當前的位置:
        首頁>
        電子資訊>
        技術專題>
        ESP32 PWM

        技術專題

        ESP32 PWM


        ESP32 PWM

        脈寬調制(PWM

        脈沖寬度調制(PWM)是一種創建可控制的波形數字信號以用于各種應用的技術。在不同的微控制器設備中實現硬件PWM的設計有不同的變化。但是它們在最終輸出和用法方面基本上是相同的。

        PWM內部硬件以及PWM如何工作?

        這是典型PWM外設的通用硬件圖。

        如上圖所示,PWM信號發生器的主要組件是定時器模塊。計時器由來自主系統時鐘的時鐘信號提供時鐘。并且它在每個時鐘周期從0開始計數,并遞增1。

        當定時器遞增計數時,其值正由兩個比較器進行比較。如果達到占空比寄存器的值,則會生成一個匹配信號,該信號會復位引腳狀態,使其變為LOW。定時器將繼續計數直到達到周期寄存器的值,然后另一個比較器將產生一個匹配信號,該信號將PWM引腳設置為高電平狀態。計時器返回到0,重復該過程,依此類推!

        PWM信號屬性

        典型的PWM信號具有以下屬性,我們可以通過對微控制器的PWM外設的寄存器進行編程來控制它們。例如PWM頻率,PWM分辨率和PWM占空比。通過更改PWM的占空比參數,脈沖的寬度也會發生變化。因此,波形的平均電壓也會發生變化,這會產生某種可控的模擬輸出(不完全是)。

        PWM頻率僅為1 / T,其中T是每個周期的周期。您可以根據要控制的頻率將頻率設置為所需的任何值。在以后的教程中,我們將對此進行更深入的研究,但是現在,我們希望對LED進行調光。因此,對于該應用,1kHzPWM頻率就足夠了。

        最后一個PWM參數,分辨率是衡量我們可以控制多少個離散占空比的指標。查看上面的GIF圖像,您會注意到PWM占空比在每個級別上都增加了10%。因此,占空比的總控制離散級別為10個級別。PWM分辨率= log2Num_of_Levels= log210= 3.3位。

        將分辨率設置為8位將使我們的總占空比等級= 2 n,其中n是分辨率(以位為單位)。因此,占空比整個范圍為2 8 = 256級。因此,占空比值范圍為[0 – 255]。分辨率越高,控制占空比越精細。

        ESP32硬件PWM

        在本部分中,我將為您介紹ESP32 LED PWM外設的硬件功能,它的工作方式以及它具有什么樣的功能。因此,您可以根據自己的特定應用程序需求以有效的方式使用它。

        ESP32 PWM引腳

        ESP32 PWM硬件有16個不同的通道,而不是管腳。您可以將這些通道中的任何一個分配給所需的任何GPIO引腳。但是它必須具有輸出驅動器,或者換句話說,它應該能夠作為輸出引腳工作。

        在我們的ESP32開發板上,除4個引腳外,所有GPIO引腳均可配置為以輸出模式運行。這些引腳僅用于輸入,因此它們不支持PWM功能。您可以避免使用這些別針,并且可以自由使用其他任何別針。

        請參考此ESP32 devkit開發板引腳圖。

        (如果不清楚,請右鍵單擊并在新標簽頁中將其打開以查看大圖)

        ESP32 PWM通道

        ESP32 PWM控制器主要用于控制LED的強度,盡管它也可以用于生成其他目的的PWM信號。它具有16個通道,可以生成獨立的PWM波形。

        ESP32 PWM控制器有8個高速通道和8個低速通道,總共有16個通道。根據速度將它們分為兩組。每個組有4個計時器/ 8個通道。這意味著每兩個通道共享一個相同的計時器。因此,我們無法獨立控制每對通道的PWM頻率。

        這是數據手冊中的ESP32 PWM硬件圖。

        因此,這意味著我們有16個通道可以獨立控制其PWM占空比。但是頻率必須在路由到同一計時器的每對通道之間共享。如果您需要8個以上具有不同頻率的不同PWM信號,則應考慮尋找外部解決方案(例如I2C PWM控制器IC)。

        您可以使用ESP32 PWM引腳來控制許多設備,從小型LED到使用MOSFET驅動器以及類似功能的大功率電機。在本節中,我將逐步介紹如何配置和控制PWM輸出引腳。

        步驟1 –確定要使用的[0 – 15] PWM通道。

        步驟2 –決定將GPIO引腳路由到此PWM Ch信號。

        步驟3 –使用此功能將該PWM Ch分配給選定的GPIO引腳。

        步驟4 –確定所選通道[1Bit – 16Bits]所需的PWM分辨率。將分辨率設置為8Bits,可以得到一個占空比范圍[0 – 255]。將其設置為10Bits時,范圍為[0 – 1023]。等等!

        步驟5 –確定所選通道所需的PWM頻率。它可以是任何東西,但對于我們的LED調光示例,我們將其設置為1kHz或(1000Hz)。

        步驟6 –使用此功能以選定的頻率和分辨率配置此PWM通道。

        ledcSetup PWM_Ch,PWM_Freq,PWM_Res ;

        步驟7 –現在,您可以使用下面的此功能通過更改占空比來控制此PWM引腳。

        ledcWrite PWM_Ch,DutyCycle ;

        請輸入搜索關鍵字

        確定
        国产在线视频在线