衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用ESP32 PWM信號(hào)控制LED的亮度

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

在本教程中,我們將討論ESP32 開(kāi)發(fā)板的 PWM(脈沖寬度調(diào)制)引腳。ESP32 開(kāi)發(fā)板的所有 GPIO 引腳(Power、GND、Tx、Rx 和 EN 除外)均可用于獲取 PWM 信號(hào)。作為ESP32 PWM 示例,我們將構(gòu)建一個(gè)簡(jiǎn)單的電路,根據(jù) PWM 信號(hào)改變 LED 亮度。

所需組件

ESP32

引領(lǐng)

330Ω電阻

10k 鍋

面包板

PWM 生成

在解釋 ESP32 上的 PWM 生成之前,讓我們討論一些與 PWM 相關(guān)的術(shù)語(yǔ)。

TON(開(kāi)啟時(shí)間):信號(hào)為高電平的持續(xù)時(shí)間。

TOFF(關(guān)閉時(shí)間):信號(hào)為低電平的持續(xù)時(shí)間。

周期:它是 PWM 信號(hào)的開(kāi)啟時(shí)間和關(guān)閉時(shí)間的總和。

TotalPeriod = T ON + T OFF

占空比:在 PWM 信號(hào)周期內(nèi)信號(hào)為高電平的時(shí)間百分比。

占空比 = T ON /T總計(jì)* 100

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

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

poYBAGL1_vKAZrAIAAAw58nUBWk412.png

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

ESP32 上的 PWM 生成

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

ledcAttachPin(gpio, channel)

ledcSetup(channel, frequency, resolution)

ledcWrite(channel, dutycycle)

電路原理

ESP32 PWM的電路圖如下所示。

poYBAGL1_u2ATfKJAAFu9_BvnC8196.png

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

ESP32 PWM 代碼說(shuō)明

完整的代碼在頁(yè)面末尾給出。

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

常量 int ledPin = 16; // 16對(duì)應(yīng)GPIO16

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

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

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

無(wú)效設(shè)置(){
  序列號(hào).開(kāi)始(9600);
  ledcSetup(ledChannel, 頻率, 分辨率);
  ledcAttachPin(ledPin, ledChannel);
}

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

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

測(cè)試 ESP32 PWM 信號(hào)

要測(cè)試 ESP32 PWM 信號(hào),請(qǐng)按照電路圖連接 LED 和電位器,然后將代碼上傳到您的 ESP32。確保您選擇了正確的板和 COM 端口。現(xiàn)在旋轉(zhuǎn)電位器來(lái)增加或減少 LED 亮度。

poYBAGL1_uiASq7nAAS5d-ZcL-E172.png

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23356

    瀏覽量

    663202
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5198

    瀏覽量

    214882
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    978

    瀏覽量

    17529
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本質(zhì)上是讓 ESP32 設(shè)備與豆包的 API 進(jìn)行通信,以獲取相關(guān)服務(wù)
    的頭像 發(fā)表于 02-05 13:40 ?147次閱讀
    <b class='flag-5'>esp32</b>如何接入豆包

    PWMLED調(diào)光中的應(yīng)用

    模擬信號(hào)的數(shù)字表示方法,它通過(guò)周期性地打開(kāi)和關(guān)閉信號(hào)來(lái)模擬一個(gè)連續(xù)的信號(hào)。在LED調(diào)光中,PWM通過(guò)控制
    的頭像 發(fā)表于 11-28 16:33 ?1302次閱讀

    PWM調(diào)制技術(shù)在LED亮度調(diào)節(jié)中的使用

    調(diào)制技術(shù)因其在調(diào)節(jié)精度、響應(yīng)速度和能耗方面的優(yōu)勢(shì),成為了LED亮度調(diào)節(jié)的首選技術(shù)之一。 PWM調(diào)制技術(shù)原理 PWM調(diào)制技術(shù)是一種通過(guò)改變脈沖寬度來(lái)
    的頭像 發(fā)表于 11-18 15:28 ?1681次閱讀

    使用ESP32開(kāi)發(fā)板點(diǎn)亮LED

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

    ESP32控制器系列指南

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

    ESP32控制舵機(jī)的正反轉(zhuǎn)原理是什么

    舵機(jī)是一種將電信號(hào)轉(zhuǎn)換為機(jī)械運(yùn)動(dòng)的設(shè)備,廣泛應(yīng)用于機(jī)器人、無(wú)人機(jī)、汽車等領(lǐng)域。ESP32是一款功能強(qiáng)大的微控制器,具有豐富的外設(shè)接口和高性能的處理能力,可以方便地控制舵機(jī)實(shí)現(xiàn)正反轉(zhuǎn)等動(dòng)
    的頭像 發(fā)表于 08-20 09:13 ?1299次閱讀

    esp32esp8266代碼共用嗎

    本文將介紹ESP32ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的智能設(shè)備開(kāi)始進(jìn)入我們的生活。其中,ESP32
    的頭像 發(fā)表于 08-19 18:23 ?1431次閱讀

    esp8266和esp32區(qū)別是什么

    以下是關(guān)于ESP8266和ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個(gè)Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?5957次閱讀

    esp32用什么軟件編程

    ESP32是一款由樂(lè)鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍(lán)牙雙模微控制器,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能穿戴等領(lǐng)域。要對(duì)ESP32進(jìn)行編程,需要選擇合適的編程軟件和開(kāi)發(fā)環(huán)境
    的頭像 發(fā)表于 08-19 17:24 ?4327次閱讀

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

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

    ESP32能取代STM32嗎?哪個(gè)更好?

    不能!首先二者不存在哪個(gè)更好的問(wèn)題,因?yàn)檫@兩個(gè)芯片使用場(chǎng)景各不相同,在嵌入式系統(tǒng)領(lǐng)域,ESP32和STM32都是常見(jiàn)的單片機(jī)系列,它們各自具有一定的優(yōu)勢(shì)和適用場(chǎng)景。本文主要探討ESP32是否能夠取代
    的頭像 發(fā)表于 07-06 08:04 ?1.4w次閱讀
    <b class='flag-5'>ESP32</b>能取代STM32嗎?哪個(gè)更好?

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

    我使用ESP32的mcpwm模塊可以輸出PWM信號(hào),但發(fā)現(xiàn)停止PWM輸出后,其對(duì)應(yīng)的管腳一直保持為高電平,我想讓這個(gè)管腳在停止PWM輸出后,
    發(fā)表于 06-25 07:00

    ESP32如何設(shè)置PWM的脈沖數(shù)目?

    我想使用ESP32控制步進(jìn)電機(jī),想通過(guò)控制PWM的頻率和脈沖的個(gè)數(shù)進(jìn)行步進(jìn)電機(jī)的開(kāi)環(huán)控制,請(qǐng)問(wèn)如何設(shè)置P
    發(fā)表于 06-13 08:31

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

    想用ESP32驅(qū)動(dòng)步進(jìn)電機(jī)(開(kāi)環(huán),無(wú)編碼器),需要精確控制PWM的脈沖個(gè)數(shù),看了下datasheet是有高/低速時(shí)鐘計(jì)數(shù)器達(dá)到最大計(jì)數(shù)值觸發(fā)中斷的功能,但是看了下LEDC的API
    發(fā)表于 06-13 06:04

    PWM亮度控制的白色LED驅(qū)動(dòng)器TPS6116xA數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶PWM亮度控制的白色LED驅(qū)動(dòng)器TPS6116xA數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-13 09:34 ?0次下載
    帶<b class='flag-5'>PWM</b><b class='flag-5'>亮度</b><b class='flag-5'>控制</b>的白色<b class='flag-5'>LED</b>驅(qū)動(dòng)器TPS6116xA數(shù)據(jù)表
    百家乐存200送200| 百家乐平台有什么优惠| 凤阳县| 吉利百家乐的玩法技巧和规则 | 德州扑克庄家| 百家乐自动下注| 南京百家乐官网赌博现场被 | 有钱人百家乐的玩法技巧和规则| 百家乐官网发牌靴8| 澳门百家乐官网线上娱乐城| 大发888大发8668| 赌博百家乐玩法| 百家乐官网真人博彩的玩法技巧和规则| 龙游县| 大发888全球顶级游戏平台| 百家乐软件编辑原理| 大发888新网址| 怎样打百家乐的玩法技巧和规则| 天格数16土人格24火地格数19水| 阿鲁科尔沁旗| 鸿发| 大发888游戏平台下载| 乐天堂百家乐赌场娱乐网规则| 百家乐高手技巧| 百家乐官网b28博你发v| 百家乐官网上海代理| 博彩乐百家乐官网平台| 碌曲县| 吐鲁番市| 和林格尔县| 明珠娱乐开户| 博尔国际| 易胜博棋牌| 新濠娱乐城| 百家乐天下| 伊吾县| 太阳城娱乐网| 英皇国际娱乐| 丽江市| 百家乐官网桌蓝盾在线| 百家乐官网去哪里玩最好|