無論應(yīng)用場景如何變化,溫度、電壓與外部傳感器信號始終是系統(tǒng)監(jiān)控的核心。ADC憑借其多通道兼容性、高采樣率與靈活接口,能夠無縫接入各類信號源,實現(xiàn)全兼容、高精度的數(shù)據(jù)采集。
在智能家居中實時調(diào)控溫濕度,在汽車電子中精準(zhǔn)監(jiān)測電池電壓,在工業(yè)自動化中可靠采集傳感器數(shù)據(jù)……這些形態(tài)各異的物聯(lián)網(wǎng)應(yīng)用,都離不開一個關(guān)鍵組件——模數(shù)轉(zhuǎn)換器ADC。
今天,我們將分享Air8000系列工業(yè)引擎內(nèi)置的ADC接口及其demo示例,帶你體驗簡單高效的LuatOS應(yīng)用開發(fā)。
一、模數(shù)轉(zhuǎn)換ADC
ADC模擬/數(shù)字轉(zhuǎn)換器,是指將連續(xù)變量的模擬信號轉(zhuǎn)換為離散的數(shù)字信號的器件。
硬件中的ADC接口主要用來檢測模擬電壓信號量,用于電池電壓檢測、溫濕度檢測、TDS檢測等應(yīng)用。
1.1 ADC接口簡介
以Air8000A工業(yè)引擎為例,提供了豐富且實用的ADC資源,可滿足大多數(shù)物聯(lián)網(wǎng)應(yīng)用需求。
精度:12bits
數(shù)量:4個ADC接口(ADC0 ~ ADC3)
兩個特殊通道:
CPU內(nèi)部溫度Temp : -- adc.CH_CPU
主供電腳電壓VBAT : -- adc.CH_VBAT

1.2 輸入電壓范圍
重要安全提醒:外接輸入電壓切勿超過量程,否則可能燒毀模組;設(shè)置分壓(adc.setRange)要在adc.open之前設(shè)置,否則無效。
我們主流模組軟件上,對ADC都可以配置ADC_RANGE_MAX和ADC_RANGE_MIN兩種量程。
對Air8000系列工業(yè)引擎來說:
adc.ADC_RANGE_MIN:對應(yīng)量程為0-1.5V;
adc.ADC_RANGE_MAX:對應(yīng)量程為0-3.6V。
當(dāng)被測電壓≤1.5V :
使用adc.ADC_RANGE_MIN;
當(dāng)1.5V<被測電壓≤3.6V :使用adc.ADC_RANGE_MAX,無需添加外部分壓電路;
當(dāng)被測電壓>3.6V:使用ADC_RANGE_MIN,且必須添加外部分壓電路。
測量電壓相關(guān)的函數(shù)主要有兩個:adc.read(id):讀取adc通道計算值;adc.get(id):獲取adc計算值。
API文檔詳見:https://docs.openluat.com/osapi/core/adc/
二、ADC功能示例demo
本示例主要用于實現(xiàn)ADC通道配置與量程設(shè)置,數(shù)據(jù)采集并處理,循環(huán)打印處理過的ADC數(shù)據(jù)。

示例教程使用Air8000開發(fā)板+兩個Air9000P(直流電源)進(jìn)行演示;外部輸入電壓在3.6V以內(nèi),需要外部電源與模組共地,保持參考電壓一致。
2.1 代碼要點解析
核心功能代碼如下,完整demo詳見源碼倉庫最新文件。
1)讀取adc外部輸入模擬電壓
通過adc.get(id)讀取4個普通ADC接口的外部輸入模擬電壓;首先設(shè)置量程,然后打開ADC通道0,進(jìn)行采樣循環(huán),將獲取到的輸入模擬電壓值存入數(shù)組,接下來關(guān)閉ADC通道0,最后進(jìn)行數(shù)據(jù)處理、打印。

2)讀取供電電壓
通過adc.get(adc.CH_VBAT)讀取VBAT電壓:

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

4)數(shù)據(jù)處理函數(shù)
當(dāng)通道樣本數(shù)大于2時,先對樣本升序排序并剔除首尾極值,計算剩余樣本的平均值,最后根據(jù)標(biāo)簽(如CPU溫度或電壓)格式化輸出帶單位的處理值及總樣本數(shù),否則記錄樣本不足。

2.2 示例運行結(jié)果
參考實操教程搭建好硬件環(huán)境,使用Luatools工具給Air8000開發(fā)板燒錄相關(guān)內(nèi)核固件和demo腳本代碼。燒錄成功后,自動開機(jī)運行。
通過Luatools工具查看相關(guān)日志,如下圖示:

2.3 應(yīng)用場景拓展
本示例簡單演示了如何讀取ADC輸入電壓、讀取供電電壓、讀取CPU溫度,除此之外,ADC可以將各種連續(xù)變化的模擬信號(如溫度、濕度、壓力、電壓、電流等)轉(zhuǎn)換為離散的數(shù)字信號。
Air8000系列工業(yè)引擎模塊內(nèi)部ADC精度12bits,對常見應(yīng)用已經(jīng)足夠,如溫濕度傳感器、壓力傳感器、音頻信號處理等。
對于需要更高精度的應(yīng)用:可以外掛更高精度的ADC,如16位、24位等。使用過程中需注意量程范圍,不可超出量程。
今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
adc
+關(guān)注
關(guān)注
100文章
7513瀏覽量
556085
發(fā)布評論請先 登錄
RA MCU眾測寶典 | ADC/DAC之【RA2L1】DAC電壓輸出及ADC電壓采集實驗
CW32L010_ADC介紹
多通道ADC數(shù)模轉(zhuǎn)換器電池管理系統(tǒng)解決方案
【CPKCOR-RA8D1】打造一個迷你系統(tǒng)監(jiān)控中心:ADC電壓與溫度實時顯示
【CPKCOR-RA8D1】+ 打造一個迷你系統(tǒng)監(jiān)控中心:ADC電壓與溫度實時顯示
IPA1299低噪聲多通道人體生物電信號測量ADC芯片
ADC采集精度不良
第十九章 ADC——電壓采集
EEPROM芯片內(nèi)部的1路14bit ADC, ADC精度受使用通道數(shù)和采樣率是怎么樣的?
ADC多通道采集技術(shù):溫度、電壓與外部信號全兼容
評論