合宙 4g模块ADC接口的使用

目录

  • ADC接口

  • 简介

  • ADC接口控制

  • 相关硬件接口

  • 读取模块的供电电压值

  • misc.getVbatt()

  • ADC使用示例

  • 常见问题

  • 相关资料以及购买链接

ADC接口

简介

ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。
合宙Cat.1模块ADC接口主要用来检测模拟电压信号量,用于电池电压检测,温湿度检测,TDS检测等应用。


ADC接口控制

ADC的库由底层core实现,相关API接口如下:

API接口描述
adc.open()打开ADC
adc.read()读取ADC值
adc.close()关闭ADC

详细的API介绍见luat core API章节

相关硬件接口

ADC硬件通道对应的ADC id如下:

硬件接口ADC id
ADC11
ADC22
ADC33
ADC44

注意:不同的模块支持的ADC管脚不同,具体请参考ADC硬件设计章节


读取模块的供电电压值

模块的供电电压读取,原理上也是通过ADC来进行读取,但是此ADC通道为专用通道,无法通过ADC的API进行读取,需要通过misc.getVbatt()来读取底层上报的模块电压值。

注意:

  1. misc.getVbatt()为luat上层lib接口,使用时需要进行require "misc"加载.
  2. misc.getVbatt()读取的非瞬时值,底层进行过多次取样平均运算,返回的电压值时一个时间段内的平均值。

misc.getVbatt()

  • 功能:读取模块供电电压值。

  • 语法:vb=misc.getVbatt()

  • 返回值:

参数类型释义取值
vbnumber模块供电电压,单位mV
  • 示例:
require "misc"
local vb=misc.getVbatt()
log.info("VBAT",vb);


ADC使用示例

ADC 的具体使用方式可以参考如下示例代码,示例代码的主要步骤如下:

  1. 打开ADC通道2 和ADC通道3,默认最大量程
  2. 分别起三个循环定时器,每秒读取ADC2和ADC3的值和模块的vbat电压值。
  3. 读取并打印ADC2和ADC3的原始值和电压值和模块的供电电压vbat电压值。
module(...,package.seeall)

--- ADC读取测试
-- @return 无
-- @usage read2()
local function read2()
    --ADC2接口用来读取电压
    local ADC_ID = 2
    -- 读取adc
    -- adcval为number类型,表示adc的原始值,无效值为0xFFFF
    -- voltval为number类型,表示转换后的电压值,单位为毫伏,无效值为0xFFFF

    local adcval,voltval = adc.read(ADC_ID)
    log.info("testAdc2.read",adcval,voltval)
end

--- ADC读取测试
-- @return 无
-- @usage read3()
local function read3()
    --ADC3接口用来读取电压
    local ADC_ID = 3
    -- 读取adc
    -- adcval为number类型,表示adc的原始值,无效值为0xFFFF
    -- voltval为number类型,表示转换后的电压值,单位为毫伏,无效值为0xFFFF

    local adcval,voltval = adc.read(ADC_ID)
    log.info("testAdc3.read",adcval,voltval)
end

-- 开启对应的adc通道
adc.open(2)
adc.open(3)

-- 定时每秒读取adc值
sys.timerLoopStart(read2,1000)
sys.timerLoopStart(read3,1000)

require"misc"
sys.timerLoopStart(function ()
    log.info("vbatt.read",misc.getVbatt())
end,1000)


常见问题

  1. 为什么ADC测量值一直是0xFFFF?
    答:0xFFFF表示测量电压是无效值。
    • 首先确认硬件上模块的ADC管脚实际的电压值是否超过量程。ADC管脚的最大量程只能到VBAT(模块电源电压),如果超过量程,要采用外部分压的方式,将待测信号分压到量程内。

相关资料以及购买链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值