ADC接口

作者:金艺

概述

Air724UG模块内置两路通用ADC,可以用来做电池电压检测,温湿度检测,TDS检测等应用。ADC精度为12bit,测量输入范围为0到VBAT电压。若测量的电压输入范围大于模块的VBAT电压则需要进行分压后再输入ADC。

注意: 1. AT版本不支持ADC功能。 2. 如果ADC的输入电压超过VBAT电压,测试出的值不准确,所以一定要确认ADC的输入范围 3. 模块内部集成模块VBAT供电电压的检测ADC,LUAT开发方式下只需要调用misc.getVbatt()获取电压值,单位mV。无需要再用外部ADC检测。

管脚定义

接口

名称

复用

管脚

作用

ADC2

ADC2

63

数模转换输入

ADC3

ADC3

64

数模转换输入

参考设计

undefined

undefined

注意: 1. 由于ADC的量程为0到VBAT,因此如果待测电压低于模块端供电电压VBAT,直连即可,如上图AD2;如果待测电压高于模块端供电电压VBAT,需要用电阻分压,如上图ADC3; 1. R1 和 R2用于做ESD防护 1. ADC走线时需要远离数字高速信号走线,且需要包地保护。

相关AT指令

AT版本不支持ADC操作

LUAT开发相关接口

相关的I2C控制接口可以参考LUAT_API ADC章节(未完成)

相关示例,请参考:raw-latex:script_LuaTask_VX.X.X:raw-latex:demo:raw-latex:`\adc`

adc.open()

打开对应ID的ADC通道

  • 语法

    result = adc.open( id )

  • 参数

    参数

    释义

    id

    adc通道id

  • 返回值

    1:成功打开adc通道

    0:其他

  • 例子

--adc id
local ADC_ID = 0
--打开adc
adc.open(ADC_ID)

adc.read()

读取原始测量数据和电压值,电压值单位为mv

  • 语法

    adcValue,voltValue = adc.read( id )

  • 参数

    参数

    释义

    id

    adc通道id

  • 返回值

    adcValue

    原始数据ad值,无效值为0xFFFF

    voltValue

    电压值,单位为mv,无效值为0xFFFF

  • 例子

--adcval为number类型,表示adc的原始值,无效值为0xFFFF
--voltval为number类型,表示转换后的电压值,单位为毫伏,无效值为0xFFFF;adc.read接口返回的voltval放大了3倍,所以需要除以3还原成原始电压
local adcval,voltval = adc.read(ADC_ID)

adc.colse()

关闭adc

  • 语法

    adc.close(id)

  • 参数

    参数

    释义

    id

    adc id号

  • 返回值

相关资料以及购买链接

相关开发板购买链接 Air724UG开发板 Air724 开发板使用说明 相关软件资料下载