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

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

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

3天內不再提示

關于ESP8266的ADC,相關的性能參數有哪些?

單片機愛好者 ? 來源:未知 ? 2019-11-20 14:31 ? 次閱讀

這一節內容比較簡單,就是電壓采樣,在傳統設計中應用還是比較多的。首先看下支持ADC采樣的管腳,找到你手里模塊的原理圖,我的如下所示:

如上所示,U1的2腳為ADC管腳,而且整個模塊有且僅有這一個電壓采集管腳。CDS1是一個光敏電阻,它和R1組成一個分壓電路。不同強度的光照在CDS1上時,會導致它的阻值變化,最終導致ADC管腳上的電壓發生變化。

那么,關于ESP8266的ADC,相關的性能參數有哪些?

可以打開手冊:2c-esp8266_sdk_api_guide_cn_v1.5.4,在第26頁,有幾個ADC相關的函數,我們截取其中一個,看一下:

首先是電壓的輸入范圍,也就是ADC的量程:0~1.0V,相比傳統單片機的0~3.3V小了很多。

然后是分辨率:1/1024V。從這個參數可以知道,這是個10位的AD,只是不知道為何,量程這么小。

接著是三點注意事項:

1、ADC讀取管腳電壓時,需確保管腳連接了外部電路,且沒有超過量程。

這一點很好理解,根據輸入電壓設計相應的分壓電路,接過來就行了。

2、讀取電壓之前,需要修改esp_init_data_default.bin文件中的第107byte的值,改為VDD3P3管腳3和4上的真實電源電壓值。

先說修改esp_init_data_default.bin文件,這個其實很簡單,因為這個文件是我們燒錄到ESP8266里面的,所以只要找到文件位置,用修改flash的函數改一下就行。

接下來這句話可能理解起來有點繞,這個VDD3P3管腳3和4是啥?模塊上沒有這兩個管腳啊~

還記得我在前言里面提到過的,ESP8266是樂鑫的芯片,安信可做的模組封裝。所以本文上面的原理圖截圖其實是模塊的管腳分布,并不是真實的芯片管腳。真實的模塊內部的芯片原理圖是什么樣?我這里截取其中一部分,看一下:

懂?很簡單。

3、第107byte的值的單位是0.1V,有效取值范圍是18~38.

這個就很好理解了,第二點已經說了,第107byte寫入的是VDD3P3管腳的電壓。而我們常用的供電電壓是3.3V,所以要寫入的值是33。因為單位是0.1V,33*0.1V得到3.3V。

接下來看一下這三個函數,system_adc_read() 剛才已經看了,它的功能就是讀取ADC電壓值,很簡單,直接調用讀取就行。

然后是system_get_vdd33(),我們看一下截圖:

簡單來說,是用來測量VDD3P3管腳上的電壓的,可以理解為獲取當前的工作電壓。工作前提必須要確保ADC管腳懸空,同時確保esp_init_data_default.bin的第127byte值為0xFF。

還有一個函數,快速高精度的AD采樣,因為篇幅比較長,這里不截圖了,我總結一下。先看函數結構:

system_adc_read_fast(uint16 *adc_addr, uint16 adc_num, uint8 adc_clk_div)

注意事項和函數system_get_vdd33()類似,要限制輸入電壓值、修改107byte的值為VDD3P3,不同的地方在于,使用快速采樣函數的時候,要關閉wifi和所有中斷。

參數1:uint16 *adc_addr,ADC連續采樣輸出的地址指針

參數2:uint16 adc_num,ADC連續采樣的點數,范圍1~65535

參數3:uint8 adc_clk_div,ADC工作時鐘=80M/ adc_clk_div,輸入范圍8~32,建議值8.

假設我們要連續采樣50次,那么可以定義一個50個元素的數組,把數組首地址給參數1,數組大小給參數2,參數3沒有特殊情況的話默認輸入8.

所以,用過帶DMA功能的ADC的童鞋,會發現用法很相似。

接下來進入演示部分,以之前的串口程序為模版,增加AD采樣功能,得到的AD值通過串口助手打印輸出。代碼比較簡單,直接看一下主函數部分:

void ICACHE_FLASH_ATTRuser_init(void){ partition_item_t partition_item; uint16 vdd33 = 33; uint32 flash_r_w[1024]; uart_init(BIT_RATE_115200, BIT_RATE_115200); spi_flash_read(0x1fc*4096, flash_r_w, 4096); flash_r_w[107/4] = flash_r_w[107/4] & !(0xff<<((107%4)*8)); flash_r_w[107/4] = flash_r_w[107/4] | 33; spi_flash_erase_sector(0x1fc); spi_flash_write(0x1fc*4096,flash_r_w,4096); system_init_done_cb(system_done);}

前幾行比較簡單,就是串口初始化。

接下來就到了修改esp_init_data_default.bin文件中的地方,該文件的地址為什么是0x1fc?

第二節講程序燒錄的時候,曾經說過每個文件的地址,如圖:

我的模塊是16Mbit的,esp_init_data_default.bin文件的起始地址是0x1fc000,0x1000等于10進制的4096,所以0x1fc000=0x1fc*4096。

而我們要修改的是該文件的第107byte,而讀寫flash必須要4字節對齊,所以后面對107做了一些換算。理解不了的建議看一下第八節。

VDD33是前面定義的變量,值為33,對應3.3V的供電電壓。

很簡單吧?

系統初始化完成的回調函數里,我定義了一個軟件定時器,每隔3秒讀取一次ADC的電壓值,并通過串口打印出來:

void system_done(){ wifi_station_disconnect(); os_timer_disarm(&LED_timer); os_timer_setfn(&LED_timer, (os_timer_func_t *)ADC_OUTPUT, NULL); os_timer_arm(&LED_timer, 3000, 1); }void ADC_OUTPUT(){ static adc_value = 0; adc_value = system_adc_read(); os_printf("adc_value is %d ", adc_value);}

細心的人會發現定義定時器之前有一行代碼:

wifi_station_disconnect();

這是因為我的模塊之前保存了某個環境下的wifi賬號、密碼。即便主函數里沒有要求模塊連接wifi,上電后它還是會自動連接,并打印相關信息。所以,加入這一行代碼,讓它不再連接。

這就完了?是的,so easy!

程序修改完成,保存、清理、編譯、下載一條龍,然后重新上電。這里借助串口助手來查看效果。設備上電之后,效果如下所示:

如圖所示,上電后開始輸出ADC采集到的電壓值,前面兩個是200多,后面我用手擋住光敏電阻,導致光敏電阻阻值變大,R1分壓得到的電壓變小,只有40多。

實驗完成。

鏈接:

https://pan.baidu.com/s/1yueZQpULiDklHK22TPqsqA

提取碼:tcfa

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

    關注

    99

    文章

    6635

    瀏覽量

    548208
  • 電壓
    +關注

    關注

    45

    文章

    5696

    瀏覽量

    117258
  • 函數
    +關注

    關注

    3

    文章

    4367

    瀏覽量

    64155

原文標題:ESP8266_22基于自身ADC的電壓采樣

文章出處:【微信號:gh_dae0718828df,微信公眾號:gh_dae0718828df】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ESP8266燒錄與機智云一鍵配網教程

    ESP8266模塊因其低成本和高性能,廣泛應用于智能家居和工業自動化等領域。機智云平臺提供了一鍵配網功能,簡化了設備的聯網過程。本教程將詳細介紹如何使用ESP8266進行燒錄,并通過機智云實現一鍵配
    的頭像 發表于 05-24 11:04 ?127次閱讀
    <b class='flag-5'>ESP8266</b>燒錄與機智云一鍵配網教程

    如何評估adc性能參數

    評估ADC(模數轉換器)的性能參數是一個綜合考量多個因素的過程。以下是一些關鍵的ADC性能參數及其評估方法: 一、分辨率 分辨率是衡量ADC
    的頭像 發表于 11-19 17:26 ?1629次閱讀

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發表于 10-08 15:06 ?621次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動畫的 OLED 顯示

    STM32 ESP8266阿里云鏈接源碼

    stm32F103C8T6 ESP8266 物聯網電表 登錄阿里云
    發表于 08-29 14:21 ?9次下載

    esp32和esp8266代碼共用嗎

    作為兩款具有Wi-Fi功能的微控制器,因其低成本、易用性和靈活性而受到廣泛關注。然而,盡管它們在某些方面具有相似性,但在硬件性能、開發環境和編程語言等方面仍存在一定差異。 二、ESP32與ESP8266簡介
    的頭像 發表于 08-19 18:23 ?2125次閱讀

    esp8266esp32區別是什么

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

    esp8266不燒錄可以使用嗎

    Systems推出的低成本、低功耗的Wi-Fi模塊。它基于Tensilica L106微處理器,具有32位處理能力,最高頻率可達160MHz。ESP8266豐富的外設接口,如GPIO、ADC、PWM等
    的頭像 發表于 08-19 17:28 ?1508次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現: 通過路由器連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過路由器連接(STA模式) 配置
    的頭像 發表于 08-19 17:27 ?7057次閱讀

    ESP8266為什么掛載不同大小的FlashROM,下載bin文件的地址不同?

    ESP8266官方下載工具里的SPI 速度設置,晶振頻率選擇,Flash 容量選擇何實際意義?這些設置不是應該用程序修改的嘛?難道這里的設置能用來修改boot.bin里的參數?或者這些設置僅僅是在下
    發表于 07-19 15:34

    STM32F103 + ESP8266與機智云開發常見問題集錦:入門者必讀!

    關于ESP8266模塊的選擇針對初學者,強烈建議選擇帶有串口的ESP8266開發板!這可以避免像我曾經遇到的燒錄固件失敗等問題。推薦直接購買已預裝機智云固件的模塊,或者帶有串口下載功能的模塊,例如
    的頭像 發表于 07-18 08:11 ?858次閱讀
    STM32F103 + <b class='flag-5'>ESP8266</b>與機智云開發常見問題集錦:入門者必讀!

    如何讓ESP8266變成AP模式?

    請問除了smartconfig之外,我想讓ESP8266變成AP模式,再用手機APP與ESP8266對連后由手機輸入家中的路由器的SSID與Password給ESP8266 然后讓ESP826
    發表于 07-15 08:16

    JoyLink移植到esp8266當中,esp8266使用的是RTOS_SDK還是NON_RTOS_SDK?

    我看到esp8266移植京東JoyLink 2.0的文檔,但是文檔中提及的jd_demo卻找不到,哪位大神幫忙指點一下,謝謝。 小弟以下幾個疑問: 1,JoyLink移植到esp8266
    發表于 07-11 07:28

    ESP8266啟動失敗,打印亂碼的原因?

    了system_restore()函數,之后就發現ESP8266啟動失敗,無法響應任何外部事件,包括按鍵,之后重燒系統參數區文件esp_init_data_default.bin后啟動成功,請問系統
    發表于 07-11 06:03

    關于esp8266 fash map的相關問題求解答

    我的esp8266的flash map是4096KB,我在編譯的第五步時選擇4=4096KB(512KB+512KB)與6=4096KB(1024KB+1024KB)時,flash map 什么區別
    發表于 07-08 07:49

    ESP8266網絡天氣時鐘OLED顯示

    基于ESP8266實現網絡獲取天氣和時鐘并OLED顯示
    的頭像 發表于 06-28 04:46 ?2068次閱讀
    <b class='flag-5'>ESP8266</b>網絡天氣時鐘OLED顯示