基础资料
基于Air103开发板:🚗 Air103 - LuatOS 文档
探讨重点
对官方demo的复现,进行相关内容的学习及探讨。
ADC简介
模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。
硬件准备
Air103开发板1块,面包板1块,LED灯1个,105可调电位器1个,导线若干。
软件版本
AIR103:LuatOS@AIR103 base 22.10 bsp V0013
测试demo:adcdemo 1.0.0
接口介绍
接口文档可参考:ADC库
接线原理图
3v3电源采用开发板外供电源端口(17管脚)
核心代码
while 1 do
adc.open(3) -- 模块上的ADC3脚-PA3, 0~2.4v,不要超过范围使用!!! 仅air103
sys.wait(500)
log.debug("adc", "adc3-read", adc.read(3))
log.debug("adc", "adc3-get", adc.get(3))
sys.wait(500)
end
测试过程
只使用ADC3,LED1引线前端加ESD器件(1K电阻),做分压保护。
采用数字万用板实测各部件分压的方法做对比。
测试结果
前端ESD器件,万用表实测995欧,工作分压4mv,LED(黄色)两端实测电压1.905V,电位器2.37K\Omega,电压1.346V。板载3v3接口(实测3.301V)。
结果: adc.read:2079,adc3-get:2078。
测试LOG数据片段
[2022-11-21 14:20:53.502] AT+RESET
[2022-11-21 14:20:53.502]
[2022-11-21 14:20:53.502] OK
[2022-11-21 14:20:53.750] I/main auth ok 851042503039383735120079EE145606 AIR103
[2022-11-21 14:20:53.750] I/main LuatOS@AIR103 base 22.10 bsp V0013
[2022-11-21 14:20:53.750] I/main ROM Build: Oct 31 2022 11:22:26
[2022-11-21 14:20:53.750] D/main loadlibs luavm 180208 12184 12208
[2022-11-21 14:20:53.751] D/main loadlibs sys 12288 5184 5184
[2022-11-21 14:20:53.751] I/user.main adcdemo 1.0.0
[2022-11-21 14:20:54.276] D/user.adc adc3-read 113064 2078
[2022-11-21 14:20:54.276] D/user.adc adc3-get 2078
[2022-11-21 14:20:55.286] D/user.adc adc3-read 113068 2078
[2022-11-21 14:20:55.286] D/user.adc adc3-get 2078
[2022-11-21 14:20:56.299] D/user.adc adc3-read 113068 2078
[2022-11-21 14:20:56.299] D/user.adc adc3-get 2078
[2022-11-21 14:20:57.307] D/user.adc adc3-read 113063 2078
[2022-11-21 14:20:57.307] D/user.adc adc3-get 2078
[2022-11-21 14:20:58.323] D/user.adc adc3-read 113048 2078
[2022-11-21 14:20:58.323] D/user.adc adc3-get 2079
[2022-11-21 14:20:59.317] D/user.adc adc3-read 113065 2078
[2022-11-21 14:20:59.317] D/user.adc adc3-get 2078
[2022-11-21 14:21:00.344] D/user.adc adc3-read 113047 2078
[2022-11-21 14:21:00.344] D/user.adc adc3-get 2078
结论
ADC3程序adc.read与adc3-get结果一致,开发版内部测试值与万用表实测值存在相关关系,达到了ADC的目的。
根据官方解答:
为什么用合宙开发板测试打印出来的电压值与实际用万用表测量的电压值误差较大?
由于标准开发板设计目的主要为了方便功能性演示,内部还没有做有相应的优化处理,需要客户在使用时,按照实际的板子走线,阻抗,以及压降等添加相应的压差补偿。