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

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

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

3天內不再提示

ESP32學習筆記:PWM

CHANBAEK ? 來源:跳動的字節 ? 作者:曉宇 ? 2023-07-14 14:56 ? 次閱讀

今天我們來玩兒PWM。

概述

脈寬調制(PWM)是一種可以自由控制的產生可控數字信號波形的技術,說直白一點就是占空比不同的數字信號,下面用一幅圖簡單介紹一下微控制器實現PWM的原理:

圖片

我們以STM32內部的定時器講一講原理,如上圖,當TIMER向上計時時,計數值會跟比較通道的CCR去比較,如果低于比較值,通道輸出高電平,高于比較值,則輸出低電平,這個只是打個比方,具體輸出什么可以自由配置。到設置的最大值之后,重新從0開始計時,如此不停的循環,就產生了PWM信號了。我們如果控制不同的占空比,就可以控制輸出的平均電壓,也就可以控制燈的亮度了。

圖片

ESP32 不同于普通的PWM,它這里叫LED PWM,主要用于控制LED的亮度與顏色,當然,也可以用于其它用途,一共有16路通道,8路高速8低速,這16路通道可以分配給任意一個IO(某些只有輸入功能的除外)。

圖片

16個通道,根據速度分,分為兩組,每組有4個定時器對應8個通道,兩個通道共享一個定時器,所以,最多能輸出8個不同頻率的PWM。

硬件

PWM輸出引腳可以分配給任意一個IO,如下圖所示,紅框內的為可配置PWM的引腳,GPIO34-35,GPIO36,GPIO39除外。

圖片

軟件

分配通道到GPIO引腳

確定好要使用的PWM通道PWM_Ch,綁定到GPIO_Pin。

ledcAttachPin(GPIO_Pin, PWM_Ch);

頻率,分辨率設置

配置選擇通道的PWM頻率,分辨率可以設置1位到16位,比如我們設置成8位,占空比范圍就是0-255,設置成10位,就是0-1023這樣,函數也很簡單。

/*
* PWM_Ch   PWM通道 0-15
* PWM_Freq PWM頻率 
* PWM_Res  PWM分辨率 1-16
* */
ledcSetup(PWM_Ch, PWM_Freq, PWM_Res);;

設置占空比

直接寫入對應占空比即可在對應IO上輸出PWM。

ledcWrite(PWM_Ch, DutyCycle);

完整程序

#define LED_GPIO   4
#define PWM1_Ch    0
#define PWM1_Res   10
#define PWM1_Freq  1000
 
int PWM1_DutyCycle = 0;
 
void setup()
{
  ledcAttachPin(LED_GPIO, PWM1_Ch);
  ledcSetup(PWM1_Ch, PWM1_Freq, PWM1_Res);
}
 
void loop()
{
  while(PWM1_DutyCycle < 1023)
  {
    ledcWrite(PWM1_Ch, PWM1_DutyCycle++);
    delay(10);
  }
  while(PWM1_DutyCycle > 0)
  {
    ledcWrite(PWM1_Ch, PWM1_DutyCycle--);
    delay(10);
  }
}

我們這里使用1kHz的PWM頻率,將PWM通道0綁定到GPIO4,選擇10位的分辨率,我們可以看下視頻,PWM變化還是非常絲滑的。然后在主循環中將占空比逐漸從最小到最大,再從最大到最小,一直循環。

對于ESP32,還有專門用于電機控制的脈寬調制器PWM,后面我們項目中再細說,整體來說使用還是非常簡單的,大家快去試一試吧!

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

    關注

    48

    文章

    7646

    瀏覽量

    151943
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5197

    瀏覽量

    214646
  • STM32
    +關注

    關注

    2271

    文章

    10923

    瀏覽量

    357202
  • 脈寬調制
    +關注

    關注

    3

    文章

    219

    瀏覽量

    38382
  • ESP32
    +關注

    關注

    18

    文章

    977

    瀏覽量

    17481
收藏 人收藏

    評論

    相關推薦

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

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

    ESP32單片機學習筆記

    ESP32 單片機學習筆記 - 03 - MCPWM脈沖輸出/PCNT脈沖計數前言,繼續上一篇的內容。因為上一篇剛好實驗了iic和spi,形成一對。接下來講pwm另起一篇。一、電機
    發表于 08-23 08:47

    ESP32ESP-IDF學習筆記

    ESP32ESP-IDF 學習筆記(六)【I2C數據總線(I2C)】文章目錄ESP32ESP
    發表于 02-22 07:30

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X
    發表于 11-14 09:06 ?6次下載
    <b class='flag-5'>ESP32</b> 開發<b class='flag-5'>筆記</b>(四)LVGL控件<b class='flag-5'>學習</b> Window 窗口控件 X

    [ESP32]學習筆記02

    [ESP32學習筆記02]使用ViusalStudio2017開發ESP32、按鍵輸入檢測前言一、安裝Visual Studio 2017二、配置開發環境1.安裝ViusalGDB2.
    發表于 12-03 17:36 ?23次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>02

    [ESP32]學習筆記04

    Analog-to-Digital Converter(模數轉換器)的使用今天我們學習ESP32提供的ADC外設的使用,ESP32的每個ADC單元都支持兩種模式,單次讀取和連續讀取(DMA),本次
    發表于 12-22 19:02 ?9次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>04

    SPI主線協議——ESP32學習筆記

    目錄SPI主線協議——ESP32學習筆記零、前言一、什么是SPI?二、通信過程?三、極性和相位四、總結SPI主線協議——ESP32學習
    發表于 12-22 19:23 ?18次下載
    SPI主線協議——<b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    ESP32_PWM學習總結

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

    ESP32 單片機學習筆記 - 04 - ADC和定時器

    ESP32 單片機學習筆記 - 04 - ADC和定時器一、模擬數字轉換器 ADC編程指南:Analog to Digital Converter。數據手冊: ESP32 技術參考手冊
    發表于 01-17 13:18 ?11次下載
    <b class='flag-5'>ESP32</b> 單片機<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 04 - ADC和定時器

    ESP32上的深度強化學習

    電子發燒友網站提供《ESP32上的深度強化學習.zip》資料免費下載
    發表于 12-27 10:31 ?0次下載
    <b class='flag-5'>ESP32</b>上的深度強化<b class='flag-5'>學習</b>

    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 ?2631次閱讀
    如何使用<b class='flag-5'>ESP32</b>的LEDC進行<b class='flag-5'>PWM</b>控制?

    如何在ESP32中使用PWM

    ESP32 SoC 滿載了非常有用的外設,PWM 就是其中之一。是的。ESP32 的芯片中有一個專用的 PWM 硬件模塊。脈寬調制或簡稱PWM
    的頭像 發表于 07-13 11:14 ?3690次閱讀
    如何在<b class='flag-5'>ESP32</b>中使用<b class='flag-5'>PWM</b>

    ESP32學習筆記:雙核

    今天我們來說說ESP32 for Arduino 的雙核。
    的頭像 發表于 07-15 16:16 ?5294次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:雙核

    ESP32學習筆記:WiFi

    今天我們來說說ESP32 的WiFi。
    的頭像 發表于 07-15 16:20 ?4170次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:WiFi
    主站蜘蛛池模板: 天天色影| 嗯!啊!使劲用力在线观看 | 亚洲一区二区三区中文字幕5566 | 1024手机免费看 | 国产精品美女在线 | 桃色婷婷| 午夜视频在线免费 | 九九热免费在线观看 | 国产精品青草久久久久福利99 | 男男浪荡双性受hplay | 亚洲图片欧美色图 | 手机看片自拍自自拍日韩免费 | 欧美人成a视频www | 久久久噜噜噜久久久 | 福利视频一区二区微拍堂 | 欧美二区三区 | 狠狠色噜噜狠狠狠狠五月婷 | 色老头网站久久网 | 黄频免费 | 午夜色站| 午夜视频免费观看 | 国内精品 第一页 | 人人做天天爱夜夜爽中字 | 日本亚洲欧美国产日韩ay高清 | 午夜色视频在线观看 | 天天av天天翘天天综合网 | 午夜小片| xxxx性bbbb| 五月丁香啪啪 | 日本高清免费aaaaa大片视频 | 天天狠天天干 | 亚洲国产成人va在线观看 | 白嫩美女一级高清毛片免费看 | 亚洲欧美一区二区三区麻豆 | 成人丁香 | 天天躁夜夜躁狠狠躁2021a | 天堂69亚洲精品中文字幕 | 网友自拍区一区二区三区 | 91精品啪国产在线观看免费牛牛 | 美女扒开尿口给男人爽免费视频 | 种子搜索在线 |