全志R128芯片应用开发案例——ADC驱动烟雾传感器

news2024/11/27 6:23:59

ADC驱动烟雾传感器

本文案例代码下载地址
ADC驱动烟雾传感器案例代码https://www.aw-ol.com/downloads?cat=24

原理介绍

MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半 导体。当处于200、300℃温度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒受到该烟雾的调制而变化,就会引起表而电导率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾浓度越大,电导率越大输出电阻越低。MQ2气体传感器可以很灵敏的检测到空气中的烟雾、液化气、丁烷、丙烷、甲烷、酒精、氢气等气体。

首先我们搭建电路,如下:

在这里插入图片描述

引脚按键
PB0MQ2 AO脚
GNDMQ2 GND
3V3MQ2 VCC

载入方案

我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择r128s2_module_c906

$ source envsetup.sh 
$ lunch_rtos 1

在这里插入图片描述

勾选 GPADC 驱动

mrtos_menuconfig 找到下列驱动

Drivers Options  --->
    soc related device drivers  --->
        GPADC devices --->
            [*] enable gpadc driver
            [*]   enable power protect driver

在这里插入图片描述

编写程序

打开你喜欢的编辑器,修改文件:lichee/rtos/projects/r128s2/module_c906/src/main.c

在这里插入图片描述

引入头文件

#include <sunxi_hal_gpadc.h>

在这里插入图片描述

由于MQ2是一个加热器驱动的传感器,如果长时间存放,传感器的校准可能会漂移。

长时间存放后首次使用时,传感器必须充分预热24-48小时以确保最大精度。

如果最近使用过传感器,则只需5-10分钟即可完全预热。 在预热期间,传感器读数通常很高,然后逐渐降低直到稳定。

为了实现预热功能,我们先实现一个 sleep 函数,等待预热完成再读取 ADC 电压值。

static inline int msleep(int ms) {
    vTaskDelay(ms / portTICK_RATE_MS); 
}

在这里插入图片描述

ADC 功能配置

GPADC 初始化接口

GPADC 模块初始化,主要初始化时钟,中断以及采样率配置等,这里我们初始化并检查即可。

int hal_gpadc_init(void)
GPADC 通道初始化

选择并配置 GPADC 某个通道,这里配置初始化0通道。

hal_gpadc_channel_init(0);
GPADC 读取电压接口

读取0通道的ADC电压数据。

ret = gpadc_read_channel_data(0)

完整代码如下

// 预热模块
msleep(20000);

// 初始化 GPADC
if(hal_gpadc_init() != 0){
    printf("ADC Init failed!\n");
}

// 初始化通道
hal_gpadc_channel_init(0);

// 读取电压
while(1){
    uint32_t vol_data = gpadc_read_channel_data(0);
    printf("channel 0 vol data is %u\n", vol_data);
}

// 释放通道,这里没有用到
hal_gpadc_channel_exit(0);
// 释放GPADC,这里没有用到
hal_gpadc_deinit();

结果

烧录后可以看到输出的电压值。

在这里插入图片描述

原贴链接:https://bbs.aw-ol.com/topic/4418/
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
全志及开发者最新动态可以关注全志在线微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络端口验证

网络端口连通性验证 1、背景2、目标3、环境4、部署4.1、准备工作4.2、安装4.3、场景测试 1、背景 在日常运维过程中经常会遇到以下两种场景&#xff1a; 1、程序业务端口的开具及验证 2、业务程序访问异常网络排障 2、目标 1、验证端口的正确开具 2、网络策略的连通性 3、环…

onlyoffice的介绍搭建、集成过程。Windows、Linux

文章目录 什么是onlyoffice功能系统要求安装必备组件 windows搭建资源下载安装数据库onlyoffice安装测试 Linux搭建dockerdocker-compose 项目中用到的技术&#xff0c;做个笔记哈~ 什么是onlyoffice 在本地服务器上安装ONLYOFFICE Docs Community Edition Community Edition…

day06-前后端项目上传到gitee、后端多方式登录接口、发送短信功能、发送短信封装、短信验证码接口、短信登录接口

1 前后端项目上传到gitee 2 后端多方式登录接口 2.1 序列化类 2.2 视图类 2.3 路由 3 发送短信功能 4 发送短信封装 4.0 目录结构 4.1 settings.py 4.2 sms.py 5 短信验证码接口 6 短信登录接口 6.1 视图类 6.2 序列化类 1 前后端项目上传到gitee # 我们看到好多开源项目…

系列九、Redis的发布订阅

一、概述 Redis的发布订阅是进程间的一种消息通信模式&#xff0c;发送者&#xff08;Publisher&#xff09;发送消息&#xff0c;订阅者&#xff08;Subscriber&#xff09;接收消息。 二、命令 三、案例演示 3.1、订阅单个 客户端订阅 cctv-1、cctv-2、 cctv-3三个频道 SUB…

如何提高逻辑思维能力?

逻辑思维能力&#xff0c;对学习和工作效率具有直接的影响力&#xff0c;所以在企业招聘中&#xff0c;逻辑思维能力几乎是笔试的必考内容&#xff0c;当然目前招聘测评已经从纸笔测试&#xff0c;演变为在线测评&#xff0c;通常被称之为岗位胜任力测评&#xff0c;或者是综合…

优思学院:想成为质量工程师?了解质量工程师职责和能力是关键!

在职场中&#xff0c;质量工程师的角色显得至关重要。但如果你不清楚质量工程师的工作职责以及所需具备的能力&#xff0c;那么这个岗位可能会显得遥不可及。本文将为你详细介绍质量工程师的工作内容以及如何选择适合自己的质量工程师岗位。 一、质量工程师的工作职责 1. 质量…

30 分钟手把手带你入门数据脱敏

Bytebase 的动态数据脱敏 (Dynamic Data Masking) 可根据上下文即时屏蔽查询结果中的敏感数据。它可以帮助企业保护敏感数据&#xff0c;防止其暴露给未经授权的用户。 本教程将在 30 分钟内手把手教会你如何在 Bytebase 中设置和尝试数据脱敏。 在开始教程之前请确保已安装 D…

计算机网络 | 传输层

计算机网络 | 传输层 计算机网络 | 传输层功能概述 参考视频&#xff1a;王道计算机考研 计算机网络 参考书&#xff1a;《2022年计算机网络考研复习指导》 计算机网络 | 传输层 功能概述 传输层是主机才有的层次。 复用&#xff1a;发送方的不同应用进程都可以使用同一个传…

NeurIPS 2023 | AD-PT:首个大规模点云自动驾驶预训练方案

概要 自动驾驶领域的一个长期愿景是&#xff0c;感知模型能够从大规模点云数据集中学习获得统一的表征&#xff0c;从而在不同任务或基准数据集中取得令人满意的结果。之前自监督预训练的工作遵循的范式是&#xff0c;在同一基准数据集上进行预训练和微调&#xff0c;这很难实…

华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)

华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践系列&#xff1a; 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…

10 | JpaSpecificationExecutor 实现的原理是什么

在开始讲解之前&#xff0c;请先思考几个问题&#xff1a; JpaSpecificationExecutor 如何创建&#xff1f;它的使用方法有哪些&#xff1f;toPredicate 方法如何实现&#xff1f; 带着这些问题&#xff0c;我们开始探索。先看一个例子感受一下 JpaSpecificationExecutor 具体…

09 | JpaSpecificationExecutor 解决了哪些问题

QueryByExampleExecutor用法 QueryByExampleExecutor&#xff08;QBE&#xff09;是一种用户友好的查询技术&#xff0c;具有简单的接口&#xff0c;它允许动态查询创建&#xff0c;并且不需要编写包含字段名称的查询。 下面是一个 UML 图&#xff0c;你可以看到 QueryByExam…

ReID的各种Loss的pytorch实现

为了提高ReID的性能通常会采用softmax loss 联合 Triplet Loss和Center Loss来提高算法的性能。 本文对Triplet Loss和Cnetr Loss做一个总结&#xff0c;以简洁的方式帮助理解。 Triplet Loss和Center Loss都是从人脸识别领域里面提出来的&#xff0c;后面在各种图像检索任务…

笔记本Win10系统一键重装操作方法

笔记本电脑已经成为大家日常生活和工作中必不可少的工具之一&#xff0c;如果笔记本电脑系统出现问题了&#xff0c;那么就会影响到大家的正常操作。这时候就可以考虑给笔记本电脑重装系统了。接下来小编给大家介绍关于一键重装Win10笔记本电脑系统的详细步骤方法。 推荐下载 系…

遗传算法------微生物进化算法(MGA)

前言 该文章写在GA算法之后&#xff1a;GA算法 遗传算法 (GA)的问题在于没有有效保留好的父母 (Elitism), 让好的父母不会消失掉. Microbial GA (后面统称 MGA) 就是一个很好的保留 Elitism 的算法. 一句话来概括: 在袋子里抽两个球, 对比两个球, 把球大的放回袋子里, 把球小…

Qt中各个功能模块遵循的协议

Qt 中各个模块的协议&#xff0c;是在变化的&#xff0c;并不是一成不变 不同版本&#xff0c;协议有可能会变。同一版本&#xff0c;在不同时间期间&#xff0c;协议也可能会变 具体以官网为准

搜索引擎站群霸屏排名源码系统+关键词排名 前后端完整的搭建教程

开发搜索引擎站群霸屏排名系统是一项重要的策略&#xff0c;通过在搜索引擎中获得多个高排名站点&#xff0c;可以大大提高企业的品牌知名度&#xff0c;从而吸引更多的潜在客户和消费者。而且当潜在客户在搜索结果中看到多个与您的品牌相关的站点时&#xff0c;他们可能会认为…

EtherCAT报文-BRD(广播读)抓包分析

0.工具准备 1.EtherCAT主站 2.EtherCAT从站&#xff08;本文使用步进电机驱动器&#xff09; 3.Wireshark1.EtherCAT报文帧结构 EtherCAT使用标准的IEEE802.3 Ethernet帧结构&#xff0c;帧类型为0x88A4。EtherCAT数据包括2个字节的数据头和44-1498字节的数据。数据区由一个或…

ST-SSL:基于自监督学习的交通流预测模型

文章信息 文章题为“Spatio-Temporal Self-Supervised Learning for Traffic Flow Prediction”&#xff0c;是一篇发表于The Thirty-Seventh AAAI Conference on Artificial Intelligence (AAAI-23)的一篇论文。该论文主要针对交通流预测任务&#xff0c;结合自监督学习&#…