LuatOS-SOC接口文档(air780E)--adc - 数模转换

2023-09-13 22:29:43

常量

常量

类型

解释

adc.ADC_RANGE_3_6

number

air105的ADC分压电阻开启,范围0~3.76V

adc.ADC_RANGE_1_8

number

air105的ADC分压电阻关闭,范围0~1.88V

adc.ADC_RANGE_3_8

number

air780E开启ADC0,1分压电阻,范围0~3.8V

adc.ADC_RANGE_1_2

number

air780E关闭ADC0,1分压电阻,范围0~1.2V

adc.CH_CPU

number

CPU内部温度的通道id

adc.CH_VBAT

number

VBAT供电电压的通道id

adc.T1

number

ADC1 (如存在多个adc可利用此常量使用多ADC 例如 adc.open(ADC1+2) 打开ADC1 channel 2)

adc.T2

number

ADC2 (如存在多个adc可利用此常量使用多ADC 例如 adc.open(ADC2+3) 打开ADC2 channel 3)

adc.open(id)

打开adc通道

参数

传入值类型

解释

int

通道id,与具体设备有关,通常从0开始

返回值

返回值类型

解释

boolean

打开结果

例子

-- 打开adc通道4,并读取
if adc.open(4) then
    log.info("adc", adc.read(4)) -- 返回值有2个, 原始值和计算值,通常只需要后者
    log.info("adc", adc.get(4))  -- 返回值有1个, 仅计算值
end
adc.close(4) -- 若需要持续读取, 则不需要close, 功耗会高一点.

adc.setRange(range)

设置ADC的测量范围,注意这个和具体芯片有关,目前只支持air105/Air780E系列

参数

传入值类型

解释

int

range参数,与具体设备有关,比如air105填adc.ADC_RANGE_1_8和adc.ADC_RANGE_3_6

return

nil

返回值

例子

-- 关闭air105内部分压
adc.setRange(adc.ADC_RANGE_1_8)
-- 打开air105内部分压
adc.setRange(adc.ADC_RANGE_3_6)

adc.read(id)

读取adc通道

参数

传入值类型

解释

int

通道id,与具体设备有关,通常从0开始

返回值

返回值类型

解释

int

原始值,一般没用,可以直接抛弃

int

从原始值换算得出的实际值,通常单位是mV

例子

-- 打开adc通道2,并读取
if adc.open(2) then
    -- 这里使用的是adc.read会返回2个值, 推荐走adc.get函数,直接取实际值
    log.info("adc", adc.read(2))
end
adc.close(2)

adc.get(id)

获取adc计算值

参数

传入值类型

解释

int

通道id,与具体设备有关,通常从0开始

返回值

返回值类型

解释

int

单位通常是mV, 部分通道会返回温度值,单位千分之一摄氏度. 若读取失败,会返回-1

例子

-- 本API 在 2022.10.01后编译的固件可用
-- 打开adc通道2,并读取
if adc.open(2) then
    log.info("adc", adc.get(2))
end
adc.close(2) -- 按需关闭

adc.close(id)

关闭adc通道

参数

传入值类型

解释

int

通道id,与具体设备有关,通常从0开始

返回值

例子

-- 打开adc通道2,并读取
if adc.open(2) then
    log.info("adc", adc.read(2))
end
adc.close(2)

Next

audio - 多媒体-音频

Previous

🍴 LuatOS-SOC接口文档

评论区仅用于讨论文档内容。如有使用问题或新需求,请进支持群讨论或在官方仓库新建issue

更多推荐

VINS中的初始化方法

背景本文档介绍VINS中常见的初始化方法,静态初始化相对简单,通常1s内可以完成,但如果遇到在运动时的初始化问题,初始化难度相对较大,实际工程问题中,通常会将初始化分为静态和动态初始化两部分,这里主要是介绍动态初始化方案。一、基础知识:IMUPreintegrationIMUPreintegration等式两边同时乘以

19 视图定义 union 是根据第一个 select 字段列表顺序,来进行 merge 的

前言这个问题主要是在之前存在这样的一个问题,在生产环境上面按照我的直观理解,mysql应该是根据key进行merge,所以select的顺序应该是“不重要”??,但是结果我理解错了然后线上的查询也出现了问题,发现很奇怪的问题,明明key01列是id,但是有一部分key01是field1,然后进而产生了业务上面的查询问题

【多线程案例】单例模式

单例模式是设计模式的一种,先谈谈什么是设计模式?大家应该都知道棋谱、剑谱之类的,就是一些“高手”在经历过长期的累计之后,更具经验写出的具有固定套路的处理“方法”,只要按照这个套路来,在对局之中必然是不会吃亏的,甚至能够一招制敌。那么在我们日常的开发中也有大佬们针对一些十分常见的场景,抽象出固定的套路。一些小白在学习了大

Spark的基础

实训笔记--Spark的基础Spark的基础一、Spark的诞生背景二、Spark概念2.1SparkCore2.2.SparkSQL2.3SparkStreaming2.4SparkMLlib2.5SparkGraphX2.6SparkR三、Spark的特点3.1计算快速3.2易用性3.3兼容性3.4通用性四、Spa

Java IO 之 BIO、NIO 和 AIO

一、IOIO是Input和Output二词的缩写,意为输入和输出,直接来说,实现一般的I/O是没有什么难度的,但涉及到多线程时,要解决I/O的问题就不是一个简单的事情了,会涉及到同步和异步的问题,阻塞和非阻塞的问题。1.1同步和异步同步可以借用多线程来方便理解,多条线程,从字面意思上来看,当他们在同一直线上时,就是同步

mysql---视图详解

提示:视图最大的优点用来协助用户提高查询效力以及保护数据安全文章目录视图视图的作用:创建视图单表创建视图多表创建视图查看视图更新视图数据修改视图删除视图视图视图(View)是一个虚拟表,其内容由select查询定义。同真实的表一样,是一个select查询的结果集,所有数据来源于基表视图其实就是一个select返回的结果

写一篇nginx配置指南

nginx.conf配置找到Nginx的安装目录下的nginx.conf文件,该文件负责Nginx的基础功能配置。配置文件概述Nginx的主配置文件(conf/nginx.conf)按以下结构组织:配置块功能描述全局块与Nginx运行相关的全局设置events块与网络连接有关的设置http块代理、缓存、日志、虚拟主机等

分布式电源接入对配电网影响分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码、数据、文章💥1概述分布式电源的接入将配电系统从传统的无源放射

极简解析!IP计费的s5爬虫IP

大家好!今天我将为大家分享关于s5爬虫IP服务的知识。对于经常做爬虫的小伙伴来说,需要大量的爬虫IP支持爬虫业务,那么对于选择什么样的爬虫IP,我想我有很多发言权。下面我们一起了解下IP计费的s5爬虫IP的知识,废话不多说,让我们开始吧!第一部分:了解s5爬虫和IP计费首先,让我们简单了解一下s5爬虫和IP计费是什么。

最新AI系统ChatGPT源码+支持OpenAI全模型+国内AI模型+AI绘画

一、SparkAI智能创作系统SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!SparkAi程序使用Ne

【AI语言大模型】星火使用介绍

一、前言现在AI语言大模型是百花齐放,挺好!有竞争,有发展,才能推出更好的产品。现在,科大讯飞就推出了大语言模型——星火!能够学习和理解人类的语言,进行多轮对话,回答问题,高效便捷地帮助人们获取信息、知识和灵感。星火在对话栏设置了三个插件:文档回答、PPT生成、简历生成,下面详细介绍三个插件的用法。二、插件介绍如下图所

热文推荐