ADC示例 | 4G模组软件的信号处理!
今天我要讲的是4G模组Air724UG软件的ADC示例,供大家参考。
一、简介
ADC通常指模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。本文介绍如何用Air724开发板,和PC端搭建一个ADC电压采集的功能演示。
二、演示功能概述
本教程教你如何使用开发板 ADC 功能。
功能定义:
1、使用ADC引脚读取电压值
2、读取供电电压
3、读取模块温度
三、准备硬件环境
3.1 开发板准备
使用 Air724UG-NFM 开发板,如下图所示:
此开发板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/
Air724UG 产品手册 中的 《EVB_Air724UG_AXX开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。
3.2 数据通信线
USB数据线或者USB转TTL数据线使用普通的就行,暂无特别要求;
3.3 PC 电脑
WINDOWS 系统,其他暂无特别要求;
3.4 直流稳压电源准备
在需要直流稳压电源的场景(例如 adc 测量外部输入的模拟电压),使用合宙功耗分析仪 Air9000P,如下图所示:
四、准备软件环境
4.1 源码和工具
724UG 模块使用固件为:
LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.pac
本教程使用的 demo:
https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/adc
将固件和脚本烧录到模块中,使用说明参考:
https://docs.openluat.com/Luatools/
4.2 烧录代码
首先,确保你的 Luatools 的版本大于或者等于 3.0.6 版本.
在 Luatools 的左上角上有版本显示的,如图所示:
Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示:
这时会弹出项目管理和烧录管理的对话框,如下图:
选择对应的项目烧录代码。
五、ADC 功能软硬件资料
5.1 首先了解一下开发板上 ADC 采集电压电路的设计
当前 Air724UG 模块以及开发板上预留了两路外置 ADC 供客户调试使用,分别是 ADC2 和 ADC3,其中 ADC2 采集的电压为一个 10K 的普通电阻和一个 10K 的 NTC 热敏电阻将 1.8V 电压分压所得的电压,ADC3 采集的电压为一个 10K 的普通电阻和一个 10K 的电位器将 1.8V 电压分压所得的电压:
5.2 相关 API 介绍
ADC 相关 API:
https://doc.openluat.com/wiki/31?wiki_page_id=3909
获取供电电压,模块温度相关 API:
https://doc.openluat.com/wiki/31?wiki_page_id=3953
六、功能示例
6.1 核心代码
6.2 效果展示
烧录代码后通过 ADC 引脚读取电压
6.3 读取供电电压
6.4 读取模块温度
6.5 输入电压范围
724UG 的 ADC 输入范围为 0-5V,调用 adc.open(id,scale)时,使用 scale 参数可以调整范围。
七、总结
本教程简单举例了如何读取 adc 输入电压、读取供电电压、读取 CPU 温度,除此之外,adc 可以将各种连续变化的模拟信号(如温度、湿度、压力、电压、电流等)转换为离散的数字信号,本模块内部 ADC 精度 11bits,对许多应用已经足够,如温湿度传感器、压力传感器、音频信号处理等,然而对于需要更高精度的应用,可以外挂更高精度的 ADC,如16 位、24 位等。使用过程中需注意量程范围,不可超出量程。
八、常见问题
1、ADC 测量电压来回跳变,为什么?
答:看外部输入电压是否与模块共地,保持参考电压一致。
2、为什么用合宙开发板测试打印出来的电压值与实际用万用表测量的电压值误差较大?
答:由于标准开发板设计目的主要为了方便功能性演示,内部还没有做有相应的优化处理,需要客户在使用时,按照实际的板子走线,阻抗,以及压降等添加相应的压差补偿。
九、扩展
9.1 使用跳线帽获取开发板电位器和热敏电阻电压
分享完毕。