女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

科技觀察員 ? 來源:circuitdigest ? 作者:Ashish Choudhary ? 2022-08-12 15:21 ? 次閱讀

在本教程中,我們將討論ESP32 開發板的 PWM(脈沖寬度調制)引腳。ESP32 開發板的所有 GPIO 引腳(Power、GND、Tx、Rx 和 EN 除外)均可用于獲取 PWM 信號。作為ESP32 PWM 示例,我們將構建一個簡單的電路,根據 PWM 信號改變 LED 亮度。

所需組件

ESP32

引領

330Ω電阻

10k 鍋

面包板

PWM 生成

在解釋 ESP32 上的 PWM 生成之前,讓我們討論一些與 PWM 相關的術語。

TON(開啟時間):信號為高電平的持續時間。

TOFF(關閉時間):信號為低電平的持續時間。

周期:它是 PWM 信號的開啟時間和關閉時間的總和。

TotalPeriod = T ON + T OFF

占空比:在 PWM 信號周期內信號為高電平的時間百分比。

占空比 = T ON /T總計* 100

例如,如果一個總周期為 10ms 的脈沖保持 ON(高)5ms。然后,占空比將是:

占空比 = 5/10 * 100 = 50% 占空比

poYBAGL1_vKAZrAIAAAw58nUBWk412.png

PWM的頻率:PWM 信號的頻率決定了 PWM 完成一個周期的速度。一個周期是完成一個 PWM 信號的 ON 和 OFF,如上圖所示。

ESP32 上的 PWM 生成

Arduino和 NodeMCU 中,我們使用模擬寫入()函數將 0 到 254 之間的值“寫入”到 LED 引腳。但是ESP32開發板不支持analogWrite()函數。所以我們將使用另一個函數而不是analogWrite(),即ledcWrite()函數。ledcWrite ()與analogWrite()非常相似。它還需要兩個參數:我們想要“寫入”PWM 值的 PWM 通道和我們想要寫入所選通道的 PWM 值。ESP32 有 16 個 PWM 通道,您可以使用任何 GPIO 來生成 PWM 輸出。ESP32 提供了三個函數來分配一個 PWM 通道到一個引腳,以及配置 PWM 信號的分辨率、頻率和占空比。這些功能是:

ledcAttachPin(gpio, channel)

ledcSetup(channel, frequency, resolution)

ledcWrite(channel, dutycycle)

電路原理

ESP32 PWM的電路圖如下所示。

poYBAGL1_u2ATfKJAAFu9_BvnC8196.png

該電路包含一個 LED、一個電阻器和一個 10K 電位器。LED 的負極通過一個 330 Ω 的電阻連接到 ESP32 的 GND。您可以使用 230 Ω 和 500 Ω 之間的任何電阻值。將 LED 正極引腳連接到 GPIO 16,將 Pot 的信號引腳連接到 ESP32 的 ADC1 (VP) 引腳。

ESP32 PWM 代碼說明

完整的代碼在頁面末尾給出。

此代碼不需要任何庫,因此通過定義引腳開始您的代碼,LED 連接到。就我而言,我使用 GPIO 16 連接 LED。

常量 int ledPin = 16; // 16對應GPIO16

之后,在下一行設置 PWM 信號屬性。我將 PWM 頻率設置為 9000,分辨率設置為 10,您可以更改它以生成不同的 PWM 信號。ESP32 板支持從 1 位到 16 位的 PWM 分辨率。您還需要選擇一個 PWM 通道。ESP32 共有 16 個(0 到 15)個 PWM 通道。

常量 int 頻率 = 9000;
常量 int ledChannel = 0;
常量 int 分辨率 = 10;

現在在void setup()函數中,使用ledcSetup()函數使用您之前設置的屬性配置 LED PWM。在下一行中,定義連接 LED 的 GPIO 引腳。ledcAttachPin()函數用于定義 GPIO 引腳和生成信號的通道。在我的例子中,我使用了 GPIO 16 的 ledPin 和對應于通道 0 的 ledChannel。

無效設置(){
  序列號.開始(9600);
  ledcSetup(ledChannel, 頻率, 分辨率);
  ledcAttachPin(ledPin, ledChannel);
}

在void 循環中,讀取連接 Pot 的模擬引腳并將讀數存儲在名為'dutyCycle'的變量中。LED 亮度會隨著電位器的旋轉而增加或減少。ledcWrite()與analogWrite()非常相似。

無效循環(){
   dutyCycle = 模擬讀取(A0);
   ledcWrite(ledChannel, dutyCycle);
   延遲(15);
  }

測試 ESP32 PWM 信號

要測試 ESP32 PWM 信號,請按照電路圖連接 LED 和電位器,然后將代碼上傳到您的 ESP32。確保您選擇了正確的板和 COM 端口。現在旋轉電位器來增加或減少 LED 亮度。

poYBAGL1_uiASq7nAAS5d-ZcL-E172.png

常量 int ledPin = 16; // 16對應GPIO16
uint16_t 占空比;
// 設置 PWM 屬性
常量 int 頻率 = 15000;
常量 int ledChannel = 0;
常量 int 分辨率 = 13;
無效設置(){
序列號.開始(9600);
// 配置 LED PWM 功能
ledcSetup(ledChannel, 頻率, 分辨率);
// 將通道附加到要控制的 GPIO
ledcAttachPin(ledPin, ledChannel);
}
無效循環(){
dutyCycle = 模擬讀取(A0);
Serial.print(dutyCycle);
// 使用 PWM 改變 LED 亮度
ledcWrite(ledChannel, dutyCycle);
延遲(15);
}

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

    關注

    242

    文章

    23691

    瀏覽量

    670769
  • PWM
    PWM
    +關注

    關注

    116

    文章

    5364

    瀏覽量

    217990
  • ESP32
    +關注

    關注

    20

    文章

    1006

    瀏覽量

    18807
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本質上是讓 ESP32 設備與豆包的 API 進行通信,以獲取相關服務
    的頭像 發表于 02-05 13:40 ?1614次閱讀
    <b class='flag-5'>esp32</b>如何接入豆包

    PWMLED調光中的應用

    模擬信號的數字表示方法,它通過周期性地打開和關閉信號來模擬一個連續的信號。在LED調光中,PWM通過控制
    的頭像 發表于 11-28 16:33 ?2987次閱讀

    PWM調制技術在LED亮度調節中的使用

    調制技術因其在調節精度、響應速度和能耗方面的優勢,成為了LED亮度調節的首選技術之一。 PWM調制技術原理 PWM調制技術是一種通過改變脈沖寬度來
    的頭像 發表于 11-18 15:28 ?3114次閱讀

    esp32上使用chatGPT做一些有意思的事情

    對OpenAI API的請求。 4、使用HTTP請求向OpenAI API發送文本輸入,接收JSON格式的響應。 5、解析響應并使用它來控制ESP32控制
    的頭像 發表于 10-18 10:04 ?1006次閱讀

    使用ESP32開發板點亮LED

    ,非常適合需要Wi-Fi和藍牙連接功能的物聯網(IoT)項目。ESP32擁有兩個CPU核心,支持多種外設接口,包括GPIO(通用輸入輸出)、UART、SPI、I2C、PWM等,非常適合進行各種硬件控制和通信任務。
    的頭像 發表于 10-05 11:44 ?4575次閱讀

    ESP32控制器系列指南

    2024-05-29 Don Wilcher [微控制器] ESP32控制器已成為物聯網 (IoT) 和嵌入式控制器領域的核心部分。 ESP32
    的頭像 發表于 10-02 18:21 ?4694次閱讀
    <b class='flag-5'>ESP32</b> 微<b class='flag-5'>控制</b>器系列指南

    ESP32控制舵機的正反轉原理是什么

    舵機是一種將電信號轉換為機械運動的設備,廣泛應用于機器人、無人機、汽車等領域。ESP32是一款功能強大的微控制器,具有豐富的外設接口和高性能的處理能力,可以方便地控制舵機實現正反轉等動
    的頭像 發表于 08-20 09:13 ?2047次閱讀

    esp32esp8266代碼共用嗎

    本文將介紹ESP32ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯網技術的飛速發展,越來越多的智能設備開始進入我們的生活。其中,ESP32
    的頭像 發表于 08-19 18:23 ?2125次閱讀

    esp8266和esp32區別是什么

    以下是關于ESP8266和ESP32的主要區別: 處理器和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構。 ESP32 :使
    的頭像 發表于 08-19 18:16 ?6902次閱讀

    esp32用什么軟件編程

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制器,廣泛應用于物聯網、智能家居、智能穿戴等領域。要對ESP32進行編程,需要選擇合適的編程軟件和開發環境
    的頭像 發表于 08-19 17:24 ?6236次閱讀

    ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么區別?ESP32-WROOM-32 后綴字母代表的意思是?

    相信很多人心里都有這樣的疑問,今天就教大家怎么區分它們。 32D和32U是同一個芯片ESP32-D0WD的模組,主要區別的天線模式,分別是板載和IPEX外接天線。 32E是用的升級版的芯片
    的頭像 發表于 07-17 10:09 ?1.6w次閱讀
    <b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U  有什么區別?<b class='flag-5'>ESP32</b>-WROOM-32 后綴字母代表的意思是?

    ESP32能取代STM32嗎?哪個更好?

    不能!首先二者不存在哪個更好的問題,因為這兩個芯片使用場景各不相同,在嵌入式系統領域,ESP32和STM32都是常見的單片機系列,它們各自具有一定的優勢和適用場景。本文主要探討ESP32是否能夠取代
    的頭像 發表于 07-06 08:04 ?1.7w次閱讀
    <b class='flag-5'>ESP32</b>能取代STM32嗎?哪個更好?

    使用ESP32的mcpwm模塊輸出PWM信號,如何讓PWM管腳輸出低電平?

    我使用ESP32的mcpwm模塊可以輸出PWM信號,但發現停止PWM輸出后,其對應的管腳一直保持為高電平,我想讓這個管腳在停止PWM輸出后,
    發表于 06-25 07:00

    ESP32如何設置PWM的脈沖數目?

    我想使用ESP32控制步進電機,想通過控制PWM的頻率和脈沖的個數進行步進電機的開環控制,請問如何設置P
    發表于 06-13 08:31

    ESP32如何精確控制LED Control功能PWM的脈沖數?

    想用ESP32驅動步進電機(開環,無編碼器),需要精確控制PWM的脈沖個數,看了下datasheet是有高/低速時鐘計數器達到最大計數值觸發中斷的功能,但是看了下LEDC的API
    發表于 06-13 06:04