国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ESP32S3學(xué)習(xí)——LEDC LED PWM 控制器

這篇具有很好參考價(jià)值的文章主要介紹了ESP32S3學(xué)習(xí)——LEDC LED PWM 控制器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

芯片:esp32s3

開發(fā)環(huán)境:espidfv4.4

一、官網(wǎng)相關(guān)資料

1)LED 控制器 (LEDC) 主要用于控制 LED,也可產(chǎn)生 PWM 信號(hào)用于其他設(shè)備的控制。 該控制器有 8 路通道,可以產(chǎn)生獨(dú)立的波形來驅(qū)動(dòng) RGB LED 等設(shè)備。

LED PWM 控制器可在無需 CPU 干預(yù)的情況下自動(dòng)改變占空比,實(shí)現(xiàn)亮度和顏色漸變(因?yàn)檫@個(gè)功能,單獨(dú)作為一個(gè)外設(shè)?)

2)設(shè)置 LEDC 通道分三步完成。注意,與 ESP32 不同,ESP32-S3 僅支持設(shè)置通道為低速模式。

  1. 定時(shí)器配置 指定 PWM 信號(hào)的頻率和占空比分辨率。

  2. 通道配置 綁定定時(shí)器和輸出 PWM 信號(hào)的 GPIO。

  3. 改變 PWM 信號(hào) 輸出 PWM 信號(hào)來驅(qū)動(dòng) LED。可通過軟件控制或使用硬件漸變功能來改變 LED 的亮度。

另一個(gè)可選步驟是可以在漸變終端設(shè)置一個(gè)中斷。(嘛意思)

esp32 ledc,ESP32_IDF學(xué)習(xí),單片機(jī),stm32,物聯(lián)網(wǎng),iot,mcu

二、配置流程

1)定時(shí)器結(jié)構(gòu)體配置l edc_timer_config_t->ledc_timer_config()

要設(shè)置定時(shí)器,可調(diào)用函數(shù) ledc_timer_config(),并將包括如下配置參數(shù)的數(shù)據(jù)結(jié)構(gòu) ledc_timer_config_t 傳遞給該函數(shù):

  • 速度模式(值必須為 LEDC_LOW_SPEED_MODE)對(duì)于ESP32s3

  • 定時(shí)器索引 ledc_timer_t

  • PWM 信號(hào)頻率

  • PWM 占空比分辨率

頻率和占空比分辨率相互關(guān)聯(lián)。PWM 頻率越高,占空比分辨率越低,反之亦然。如果 API 不是用來改變 LED 亮度,而是用于其它目的,這種相互關(guān)系可能會(huì)很重要。更多信息詳見 頻率和占空比分辨率支持范圍 一節(jié)。

2)通道配置ledc_channel_config_t ->ledc_channel_config()

定時(shí)器設(shè)置好后,請(qǐng)配置所需的通道(ledc_channel_t 之一)。配置通道需調(diào)用函數(shù) ledc_channel_config()。

需向通道配置函數(shù)傳遞包括通道配置參數(shù)的結(jié)構(gòu)體 ledc_channel_config_t 。

在選定的 GPIO 上生成由定時(shí)器設(shè)置指定的頻率和占空比的 PWM 信號(hào)。

在通道運(yùn)作過程中,可以隨時(shí)通過調(diào)用函數(shù) ledc_stop() 將其暫停。

3)改變pwm占空比

1、軟件設(shè)置

ledc_set_duty() :設(shè)置新的占空比

ledc_update_duty() :使新配置生效

ledc_get_duty():獲取當(dāng)前占空比

通過ledc_channel_config(),配置時(shí)的結(jié)構(gòu)體

占空比數(shù)值范圍:0 - (2 ** duty_resolution) - 1

2、硬件設(shè)置(??)

LED PWM 控制器硬件可逐漸改變占空比的數(shù)值

1.使能漸變->ledc_fade_func_install()

之后用下列可用漸變函數(shù)之一配置:

  • ledc_set_fade_with_time()

  • ledc_set_fade_with_step()

  • ledc_set_fade()

最后用 ledc_fade_start() 開啟漸變。

如不需要漸變和漸變中斷,可用函數(shù) ledc_fade_func_uninstall() 關(guān)閉

4)改變pwm頻率

  • 通過調(diào)用函數(shù) ledc_set_freq() 設(shè)置頻率??捎煤瘮?shù) ledc_get_freq() 查看當(dāng)前頻率。

  • 通過調(diào)用函數(shù) ledc_bind_channel_timer() 將其他定時(shí)器綁定到該通道來改變頻率和占空比分辨率。

  • 通過調(diào)用函數(shù) ledc_channel_config() 改變通道的定時(shí)器

5)中斷

在 ledc_channel_config_t 中選取參數(shù) ledc_intr_type_t ,在漸變完成時(shí)觸發(fā)中斷。

要注冊(cè)處理程序來處理中斷,可調(diào)用函數(shù) ledc_isr_register()。這個(gè)漸變是嘛

6)頻率和占空比分辨率支持范圍

1、驅(qū)動(dòng)led:5K頻率,13位分辨率

2、提供時(shí)鐘:40M

3、報(bào)錯(cuò):超過占空比和頻率范圍,占空比分辨率通常用 ledc_timer_bit_t 設(shè)置

7)官方示例

使用 LEDC 改變占空比和漸變控制的實(shí)例請(qǐng)參照 peripherals/ledc/ledc_fade。

使用 LEDC 基本實(shí)例請(qǐng)參照 peripherals/ledc/ledc_basic。

三、上手敲代碼

1)使用 LEDC 基本實(shí)例請(qǐng)參照 peripherals/ledc/ledc_basic。非常簡單

1、readme:該示例使用5 kHz的固定PWM頻率,占空比為50%,并輸出GPIO引腳

2、結(jié)構(gòu)體配置:定時(shí)器和通道

// Prepare and then apply the LEDC PWM timer configuration

ledc_timer_config_t ledc_timer = {

.speed_mode = LEDC_MODE, //esp32s3只支持低速率

.timer_num = LEDC_TIMER, //LEDC_TIMER_0

.duty_resolution = LEDC_DUTY_RES,//13bit

.freq_hz = LEDC_FREQUENCY, // Set output frequency at 5 kHz

.clk_cfg = LEDC_AUTO_CLK//auto就能用

};
// Prepare and then apply the LEDC PWM channel configuration

ledc_channel_config_t ledc_channel = {

.speed_mode = LEDC_MODE,//同樣低速

.channel = LEDC_CHANNEL,//通道0

.timer_sel = LEDC_TIMER,//timer0,和定時(shí)器結(jié)構(gòu)體參數(shù)一致

.intr_type = LEDC_INTR_DISABLE,//關(guān)閉中斷

.gpio_num = LEDC_OUTPUT_IO,//綁定io5

.duty = 0, // Set duty to 0%

.hpoint = 0

};

結(jié)構(gòu)體初始化:ledc_timer_config(&ledc_timer),ledc_timer_config(&ledc_timer)

3、調(diào)整占空比,兩步走

ledc_set_duty(LEDC_MODE, LEDC_CHANNEL, LEDC_DUTY):設(shè)置新占空比

ledc_update_duty(LEDC_MODE, LEDC_CHANNEL):更新應(yīng)用

2)使用 LEDC 改變占空比和漸變控制的實(shí)例請(qǐng)參照 peripherals/ledc/ledc_fade。

1、readme:不啦不啦,沒介紹,四個(gè)通道,四種模式

* LEDC 1: Fade up / increase intensity

* LEDC 2: Fade down / decrease intensity

* LEDC 3: Keep a stable intensity

* LEDC 4: LED is not on

2、appmain:配置了n個(gè)結(jié)構(gòu)體,參考上一個(gè)歷程,基本一樣配置->初始化

有一點(diǎn)不一樣:添加了esp32的高速模式(還不知道效果)

多了了個(gè)參數(shù).flags.output_invert = 1:反轉(zhuǎn)IO,極性反轉(zhuǎn)?

3、控制占空比方法位上面提到的硬件控制

1.ledc_fade_func_install(0);:安裝,參數(shù)嘛意思,還設(shè)置了一個(gè)回調(diào)?

4、用到的幾個(gè)函數(shù)

ledc_set_fade_with_time(ledc_channel[ch].speed_mode, ledc_channel[ch].channel, 0, LEDC_TEST_FADE_TIME);

ledc_fade_start(ledc_channel[ch].speed_mode, ledc_channel[ch].channel, LEDC_FADE_NO_WAIT);

max_fade_time_ms:最后一個(gè)參數(shù),像是在給定時(shí)間范圍內(nèi)達(dá)到目標(biāo)值

ledc_set_duty(ledc_channel[ch].speed_mode, ledc_channel[ch].channel, 0);

ledc_update_duty(ledc_channel[ch].speed_mode, ledc_channel[ch].channel);

照貓畫虎就完了,都給你封裝好了

總結(jié),用起來很方便,只有幾個(gè)函數(shù),熟悉就能用文章來源地址http://www.zghlxwxcb.cn/news/detail-742402.html

到了這里,關(guān)于ESP32S3學(xué)習(xí)——LEDC LED PWM 控制器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ESP32控制器使用SX1278 LoRa模塊的方法

    ESP32控制器使用SX1278 LoRa模塊的方法

    LoRa是由Semtech公司引入的一種無線射頻技術(shù),旨在用于在不消耗大量功率的情況下將雙向信息傳輸?shù)介L距離。如果您不熟悉LoRa,請(qǐng)先查看LoRa模塊與Arduino開發(fā)板的連接方法。 在本篇文章中,我們將學(xué)習(xí)如何將LoRa模塊SX1278與ESP32結(jié)合使用。在這里,我們將使用兩個(gè)LoRa模塊-一個(gè)

    2023年04月08日
    瀏覽(21)
  • ESP32S3串口實(shí)驗(yàn)

    ESP32S3 一共有三個(gè) UART 通訊接口,設(shè)備號(hào)從 0~2,即 UART0,UART1,UART2。這三個(gè)串口的管腳不 是固定的,是可以重映射到任意的 IO 口的。 ESP32S3 的 BOOT 程序把 UART0 用于程序下載,LOG 輸出,我們的第一個(gè)實(shí)驗(yàn) hello world 的 LOG 就是從 UART0 輸出的。這個(gè)實(shí)驗(yàn)的 UART1 和 UART2 沒有外接

    2024年02月12日
    瀏覽(23)
  • esp32s3使用多串口

    esp32s3使用多串口

    我按照別人博客中設(shè)置串口2,串口打印有問題,因?yàn)闆]有看到esp32s3 多串口,就總結(jié)了一下自己的經(jīng)驗(yàn) 下圖為esp32的引腳圖 下圖為esp32s3的引腳圖 ESP32-S3 有三個(gè) UART(通用異步收發(fā)器)控制器,即 UART0、UART1、UART2,支持異步通信(RS232 和 RS485)和 IrDA,通信速率可達(dá)到 5 Mbps。

    2024年02月04日
    瀏覽(27)
  • ESP32S3入手體驗(yàn)測試

    ESP32S3入手體驗(yàn)測試

    ??所入手的型號(hào)是 YD-ESP32-S3 N16R8 ,該款和樂鑫官方推出的 ESP32-S3-DevKitC-1 配置差不多。 ??樂鑫官方介紹:ESP32-S3-DevKitC-1 v1.1 ??兩者采用的模組:ESP32-S3-WROOM-1 和ESP32-S3-WROOM-1U模組對(duì)比: ?? YD-ESP32-S3 和 ESP32-S3-DevKitC-1 硬件基本信息: ??核心模組配置都是可選。兩款開發(fā)板從原

    2024年02月05日
    瀏覽(50)
  • 【esp32】 PWM控制LED亮度原理及代碼詳解

    【esp32】 PWM控制LED亮度原理及代碼詳解

    PWM:脈沖寬度調(diào)制器 比如你有5V電源,要控制一臺(tái)燈的亮度。你可以用傳統(tǒng)的方式,串聯(lián)一個(gè)可調(diào)電阻,改變電阻,燈的亮度就會(huì)改變。 使用PWM調(diào)節(jié)的原理: 保持一定的電壓或者電流不變,改變一定周期內(nèi)的導(dǎo)通和關(guān)斷的時(shí)間。等效于,保持導(dǎo)通,改變電壓或者電流的大小

    2024年02月06日
    瀏覽(53)
  • ESP32S3系列--SPI主機(jī)驅(qū)動(dòng)詳解(一)

    ESP32S3系列--SPI主機(jī)驅(qū)動(dòng)詳解(一)

    SPI是一種串行同步接口,可用于與外圍設(shè)備進(jìn)行通信。 ESP32S3自帶4個(gè)SPI外設(shè),其中SPI0/SPI1內(nèi)部專用,共用一組信號(hào)線,通過一個(gè)仲裁器訪問外部Flash和PSRAM;SPI2/3各自使用一組獨(dú)立的信號(hào)線;開發(fā)者可以使用SPI2/3控制外部SPI從設(shè)備(Slave device);其中SPI2作為主設(shè)備有6個(gè)片選,數(shù)據(jù)

    2023年04月09日
    瀏覽(22)
  • 【ESP32S3 Sense接入百度在線語音識(shí)別】

    【ESP32S3 Sense接入百度在線語音識(shí)別】

    視頻地址: ESP32S3 Sense接入百度在線語音識(shí)別 目前這是我使用的ESP32S3官方硬件??????(小小的身材有大大的力量)只需要35元加攝像頭麥克風(fēng)79元,后期我會(huì)整理相關(guān)專欄進(jìn)行Arduino系統(tǒng)學(xué)習(xí)??????。有需要可以購買xiao開發(fā)板??????,SeeedXIAO ESP32S3 Sense硬件購買地址:

    2024年04月10日
    瀏覽(22)
  • 【ESP32S3 Sense接入語音識(shí)別+MiniMax模型對(duì)話】

    【ESP32S3 Sense接入語音識(shí)別+MiniMax模型對(duì)話】

    圍繞ESP32S3 Sense接入語音識(shí)別+MiniMax模型對(duì)話展開,首先串口輸入“1”字符,隨后麥克風(fēng)采集2s聲音數(shù)據(jù),對(duì)接百度在線語音識(shí)別,將返回文本結(jié)果丟入MiniMax模型,進(jìn)而返回第二次結(jié)果文本,實(shí)現(xiàn)語言對(duì)話文本效果。以上一共有兩次調(diào)用,后期只需加入tts模塊就可完整對(duì)話。

    2024年04月16日
    瀏覽(26)
  • ESP32S3 ADC DMA使用記錄(坑記錄)(大牛歡迎給出建議)

    目前測到三個(gè)問題: 一、ADC DMA采樣頻率sample_freq_hz取值范圍611-83333,雖然可以達(dá)到83333,但是只能是在while循環(huán)里面不停采樣才可以,如果想要隔一段時(shí)間采樣一次則不行,假如隔一段時(shí)間使用adc_digi_read_bytes讀取40byte數(shù)據(jù),結(jié)果經(jīng)常會(huì)返回ESP_ERR_INVALID_STATE,且經(jīng)常讀取的數(shù)據(jù)

    2024年02月11日
    瀏覽(40)
  • 視頻圖像處理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv

    視頻圖像處理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv

    opencv 在 esp32 及 esp32s3 上面的移植 Opencv 簡介 ? ? ? OpenCV 是一個(gè)基于 Apache2.0 許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在 Linux 、 Windows 、 Android 和 Mac OS 操作系統(tǒng)上,它輕量級(jí)而且高效—— 由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了 Python 、 R

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包