• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

    您當前的位置:
    首頁(yè)>
    電子資訊>
    技術(shù)專(zhuān)題>
    ESP32 PWM

    技術(shù)專(zhuān)題

    ESP32 PWM


    ESP32 PWM

    脈寬調制(PWM

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

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

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

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

    當定時(shí)器遞增計數時(shí),其值正由兩個(gè)比較器進(jìn)行比較。如果達到占空比寄存器的值,則會(huì )生成一個(gè)匹配信號,該信號會(huì )復位引腳狀態(tài),使其變?yōu)?span>LOW。定時(shí)器將繼續計數直到達到周期寄存器的值,然后另一個(gè)比較器將產(chǎn)生一個(gè)匹配信號,該信號將PWM引腳設置為高電平狀態(tài)。計時(shí)器返回到0,重復該過(guò)程,依此類(lèi)推!

    PWM信號屬性

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

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

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

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

    ESP32硬件PWM

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

    ESP32 PWM引腳

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

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

    請參考此ESP32 devkit開(kāi)發(fā)板引腳圖。

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

    ESP32 PWM通道

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

    ESP32 PWM控制器有8個(gè)高速通道和8個(gè)低速通道,總共有16個(gè)通道。根據速度將它們分為兩組。每個(gè)組有4個(gè)計時(shí)器/ 8個(gè)通道。這意味著(zhù)每?jì)蓚€(gè)通道共享一個(gè)相同的計時(shí)器。因此,我們無(wú)法獨立控制每對通道的PWM頻率。

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

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

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

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

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

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

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

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

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

    ledcSetup PWM_Ch,PWM_Freq,PWM_Res ;

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

    ledcWrite PWM_Ch,DutyCycle ;

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>