色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 封神!Air780E模組LuatOS開發(fā):ADC應用實例

          封神!Air780E模組LuatOS開發(fā):ADC應用實例

          發(fā)布人:13673998452 時間:2025-01-12 來源:工程師 發(fā)布文章

          今天學習一個新的示例,關于Air780E模組LuatOS開發(fā)的ADC應用實例,希望大家有所收獲。

           

          1、模數(shù)轉換(ADC)概述

           

          1.1 ADC簡介

          ADC通常指模擬/數(shù)字轉換器,是指將連續(xù)變量的模擬信號轉換為離散的數(shù)字信號的器件。Cat.1模塊ADC接口主要用來檢測模擬電壓信號量,用于電池電壓檢測,溫濕度檢測,TDS檢測等應用。

          1.2 ADC接口介紹

          根據(jù)Air780E產(chǎn)品手冊內(nèi)《Air780E_硬件設計手冊_V1.3.3.pdf》可知:

          (1)Air780E內(nèi)部ADC接口精度為12bits外部直流分壓為0-3.4V

          (2)Air780E內(nèi)部具有2個ADC接口,ADC0--AIO3ADC1--AIO4

          (3)兩個特殊通道,CPU內(nèi)部溫度Temp--adc.CH_CPU主供電腳電壓VBAT--adc.CH_VBAT

          注意事項:設置分壓(adc.setRange)要在adc.open之前設置,否則無效!!Air780E內(nèi)部具有2個ADC接口,ADC0和ADC1,如下圖紅框所示:

          wKgZoWcwySWAdc3CAA-bS5z-qqw458.png

          1.3 輸入電壓的范圍

          Air780E關閉分壓后,量程范圍0~1.1V注意:外接輸入電壓切記不可超過量程,否則有燒毀風險?。?!

          adc.setRange(adc.ADC_RANGE_1_2)--air780E關閉ADC0,1分壓電阻,范圍0~1.1Vadc.setRange(adc.ADC_RANGE_3_8)--air780E開啟ADC0,1分壓電阻,范圍0~3.2V

           

          2、演示功能概述


          本章節(jié)演示了Air780E內(nèi)部2個ADC接口,以及2個特殊通道:CPU內(nèi)部溫度Temp--adc.CH_CPU主供電腳電壓VBAT--adc.CH_VBAT的使用教程。

          2.1 通過adc.get()讀取ADC的外部輸入模擬電壓

          注:啟用分壓后量程最高也只能到達3.2V,若想測量更高的外部電源電壓,需要外接分壓電阻,具體設計請參考ADC接口設計指導;本教程外部輸入電壓在3.2v以內(nèi),需要外部電源與模組共地,保持參考電壓一致。

          2.2 通過adc.get(adc.CH_VBAT)讀取供電電壓

          2.3 通過adc.get(adc.CH_CPU)讀取CPU溫度

           

          3、準備硬件環(huán)境

           

          3.1 開發(fā)板準備

          使用Air780E核心板,

          此核心板的詳細使用說明參考:
          https://docs.openluat.com/air780e/product/

           

          3.2 數(shù)據(jù)通信線

          USB轉typeC數(shù)據(jù)線一根。

           

          3.3 PC電腦

          WINDOWS系統(tǒng),其他暫無特別要求。

           

          3.4 直流穩(wěn)壓電源

          功耗分析儀Air9000P:

          wKgZomcwyWSABgDtAAOU1LzlL6I572.png

           

          4、準備軟件環(huán)境

           

          4.1 下載調試工具

          使用說明參考:

          Luatools下載和詳細使用

          https://docs.openluat.com/Luatools/

          4.2 源碼及固件

          4.2.1 底層core下載地址:LuatOS固件版本下載地址

          https://docs.openluat.com/air780e/luatos/firmware/

          wKgaomcwyXeAVu1dAAHZOVUeEJI798.png

          本demo使用的固件是core_V1112壓縮包內(nèi)的LuatOS-SoC_V1112_EC618_FULL.soc

          4.2.2 本教程使用的demo:

          https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/adc

          4.2.3 下載源碼和固件

           

          5、模數(shù)轉換(ADC)軟硬件資

           

          5.1 API接口介紹

          本教程使用api接口為:adc-模數(shù)轉換-LuatOS文檔

          https://wiki.luatos.com/api/adc.html?highlight=adc

          5.2 Air780E燒錄說明

          將Air780E通過通過usb數(shù)據(jù)線連接電腦,如下圖所示:

          注:1、按住下載模式按鍵(boot鍵)不放,同時再長按開機鍵開機,這時開發(fā)板會進入下載模式,Luatools下載進度條會開始跑,這時可以松開boot按鍵。直到工具提示下載完成。2、如果,未能成功進入下載模式,而是進入正常開機模式,這時可以按住boot鍵,再短按復位按鍵,讓開發(fā)板重啟,重新進入下載模式。

          wKgZomcwyZeAHb__AAjbvuLz_84820.png

          如何判斷有沒有進入下載模式:可以通過PC端的設備管理器中虛擬出來的USB端口數(shù)量來判斷。

          正常開機模式:

          wKgZoWcwycCASutKAAIthmpHtjY177.png

          下載模式:

          wKgaoWcwybaAGkhxAAHJZklB7TQ096.png

           

          6、代碼示例介紹

           

          6.1 讀取adc外部輸入模擬電壓

          6.1.1 代碼介紹

          adc.open()開啟ADC后,通過adc.get(1)獲取ADC1的輸入模擬電壓值。

          wKgaoWcwydSAXn2OAAJCWSONv_A591.png

          6.1.2 運行結果展示

          可以將adc0/adc1外接穩(wěn)壓電源供電,注意供電不可超過量程?。ū臼纠龁⒂梅謮汉罅砍?~3.2V),本示例將adc1輸入3V(電源正極接adc1,負極接GND),查看luatools的log如下(返回值單位為mV):

          wKgaoWcwyeGAFGSPAAko9ZdCBpw090.pngwKgZoWcwyeuAOpXLAAdDqYcuOBI511.png

          6.2 讀取供電電壓

          6.2.1 代碼介紹

          wKgaomcwyfaARvF4AALCUiaKVr0603.png

          6.2.2 運行結果展示

          通過下圖可以看到,VBAT端供電電壓為4.1V

          wKgaomcwyf-AcJgnAATO3_uFxAA483.png

          6.3 讀取CPU溫度

          6.3.1 代碼介紹

          wKgZomcwygiAWDRxAAHRr7rfBoU547.png

          6.3.2 運行結果展示

          通過下圖可以看到,模組CPU溫度為34攝氏度

          wKgaomcwyhKAGiiPAAQ-gfCuxH8886.png

          7、總結

           

          本教程簡單舉例了如何讀取adc輸入電壓、讀取供電電壓、讀取CPU溫度,除此之外,adc可以將各種連續(xù)變化的模擬信號(如溫度、濕度、壓力、電壓、電流等)轉換為離散的數(shù)字信號,本模塊內(nèi)部ADC精度12bits,對許多應用已經(jīng)足夠,如溫濕度傳感器、壓力傳感器、音頻信號處理等,然而對于需要更高精度的應用,可以外掛更高精度的ADC,如16位,24位等。使用過程中需注意量程范圍,不可超出量程。

           

          8、常見問題

           

          8.1 為什么ADC輸入3V,讀取模擬電壓只有1.1V?

          未啟用分壓時,量程最高只能到達1.1V,若想測量3V,需啟用分壓。

          8.2 ADC測量電壓來回跳變,為什么?

          看外部輸入電壓是否與模塊共地,正常情況需要共地,保持參考電壓一致。

          8.3 adc.read()和adc.get()要用哪一個?

          adc.read()返回兩個值,一個原始值,一般沒用,可以直接拋棄;另一個是從原始值換算得出的實際值,通常單位是mV。(僅作了解,不建議使用)adc.get()返回的就是計算值,通常單位是mV,推薦使用這個接口來獲取電壓值。

          分享完畢~


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




          相關推薦

          技術專區(qū)

          關閉