基于CW32F030C8T6开发板的MQ-2烟雾检测传感器例程移植案例

2024-12-07 武汉芯源(CW32生态社区公众号)
开发板,CW32,CW32F030C8T6,武汉芯源 开发板,CW32,CW32F030C8T6,武汉芯源 开发板,CW32,CW32F030C8T6,武汉芯源 开发板,CW32,CW32F030C8T6,武汉芯源

MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~3000摄氏度时,二氧化锡表面吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至面变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息。烟雾浓度越大导电率越大,输出电阻越低,则输出的模拟信号就越大。


01模块来源

模块实物展示:


资料下载链接:

https://pan.baidu.com/s/1ETxqg03p5fEjKS7AZ2kV6w

资料提取码:qvpm


02 规格参数

工作电压:5V

工作电流:150MA

输出方式: DO接口为数字量输出 AO接口为模拟量输出

读取方式:ADC

管脚数量:4 Pin(2.54mm间距排针)

以上信息见厂家资料文件


03移植过程

我们的目标是将例程移植至立创·CW32F030C8T6开发板上【判断当前环境状况的功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。


3.1查看资料

MQ-2烟雾传感器对液化气、天然气、城市煤气灵敏度较高。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。其检测可燃气体与烟雾的范围是100~10000ppm(ppm为体积浓度。 1ppm=1立方厘米/1立方米)。带有双路信号输出(模拟量输出AO和数字量输出DO)。当气体浓度未超过设定阈值时,数字接口DO口输出低电平,模拟接口AO电压基本为0v左右;当气体影响超过设定阈值时,模块数字接口DO输出高电平,模拟接口AO输出的电压会随着气体的影响慢慢增大。阈值由模块上的可调电阻控制。


其对应的原理图,AO输出为MQ-2传感器直接输出的电压,所以为模拟量;DO为经过LM393进行电压比较后,输出高低电平,所以为数字量。



因此DO引脚可以配置为GPIO的输入模式,AO引脚需要配置为ADC模拟输入模式。


3.2引脚选择

想要使用ADC,需要确定使用的引脚是否有ADC外设功能。可以通过手册进行查看。在用户手册439页。

这里选择使用PA5的附加ADC功能。




3.3移植至工程

移植步骤中的导入.c和.h文件与第二章的第1小节【DHT11温湿度传感器】相同,只是将.c和.h文件更改为bsp_mq2.c与bsp_mq2.h。这里不再过多讲述,移植完成后面修改相关代码。

在文件bsp_mq2.c中,编写如下代码。


/* * Change Logs: * Date           Author       Notes * 2024-06-19     LCKFB-LP    first version */#include "bsp_mq2.h"
/****************************************************************** * 函 数 名 称:Adc_Init * 函 数 说 明:初始化ADC功能 * 函 数 形 参:无 * 函 数 返 回:无 * 作       者:LC * 备       注:无******************************************************************/void Adc_Init(void){    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化结构体
   RCC_MQ2_GPIO_ENABLE();        // 使能GPIO时钟    RCC_MQ2_ADC_ENABLE();         // 使能ADC时钟
   GPIO_InitStruct.Pins = GPIO_MQ2_AO|GPIO_MQ2_DO;      // GPIO引脚    GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP;       // 上拉输入    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;             // 输出速度高    GPIO_Init(PORT_MQ2, &GPIO_InitStruct);               // 初始化
   GPIO_ANALOG_ENABLE();                // PA05设定为模拟输入
   /* ADC配置 */
   ADC_InitTypeDef ADC_InitStructure;                   // ADC初始化结构体    ADC_WdtTypeDef ADC_WdtStructure;                     // ADC看门狗结构体    ADC_SingleChTypeDef ADC_SingleChStructure;           // ADC单通道转换结构体
   // 配置ADC初始化结构体    ADC_InitStructure.ADC_OpMode = ADC_SingleChOneMode;  //单通道单次转换模式    ADC_InitStructure.ADC_ClkDiv = ADC_Clk_Div4;         // 时钟频率 = PCLK / 4 = 64MHz / 4 = 16MHz    ADC_InitStructure.ADC_SampleTime = ADC_SampTime5Clk; //5个ADC时钟周期    ADC_InitStructure.ADC_VrefSel = ADC_Vref_VDDA;       //VDDA参考电压    ADC_InitStructure.ADC_InBufEn = ADC_BufDisable;      //关闭跟随器    ADC_InitStructure.ADC_TsEn = ADC_TsDisable;          //关闭内置温度传感器    ADC_InitStructure.ADC_DMAEn = ADC_DmaDisable;        //不触发DMA    ADC_InitStructure.ADC_Align = ADC_AlignRight;        //ADC转换结果右对齐    ADC_InitStructure.ADC_AccEn = ADC_AccDisable;        //转换结果累加不使能
   //ADC模拟看门狗通道初始化    ADC_WdtInit(&ADC_WdtStructure);
   //配置单通道转换模式    ADC_SingleChStructure.ADC_DiscardEn = ADC_DiscardNull;      // 单通道ADC转换结果溢出保存    ADC_SingleChStructure.ADC_Chmux = MQ2_ADC_CHANNEL;               // 选择ADC转换通道    ADC_SingleChStructure.ADC_InitStruct = ADC_InitStructure;   // ADC初始化结构体    ADC_SingleChStructure.ADC_WdtStruct = ADC_WdtStructure;     // ADC看门狗结构体
   ADC_SingleChOneModeCfg(&ADC_SingleChStructure);             // 初始化配置
   ADC_Enable(); //ADC使能
   ADC_SoftwareStartConvCmd(ENABLE);    //启动ADC转换}
/********************************************************** * 函 数 名 称:ADC_GET * 函 数 功 能:读取一次ADC值 * 传 入 参 数:无 * 函 数 返 回:测量到的值 * 作       者:LCKFB * 备       注:**********************************************************/uint32_t ADC_GET(void){        ADC_SoftwareStartConvCmd(ENABLE);    //启动ADC转换
       uint32_t adcValue = ADC_GetConversionValue(); // 获取数据
       return adcValue;}/****************************************************************** * 函 数 名 称:Get_Adc_Value * 函 数 说 明: * 函 数 形 参: * 函 数 返 回:对应扫描的ADC值 * 作       者:LC * 备       注:无******************************************************************/unsigned int Get_Adc_Value(void){        unsigned char i = 0;        unsigned int AdcValue = 0;
       /* 因为采集 SAMPLES 次,故循环 SAMPLES 次 */        for(i=0; i< SAMPLES; i++)        {                        /*    累加    */                        AdcValue += ADC_GET();        }        /* 求平均值 */        AdcValue = AdcValue / SAMPLES;
       return AdcValue;}
/****************************************************************** * 函 数 名 称:Get_MQ2_Percentage_value * 函 数 说 明:读取MQ2值,并且返回百分比 * 函 数 形 参:无 * 函 数 返 回:返回百分比 * 作       者:LC * 备       注:无******************************************************************/unsigned int Get_MQ2_Percentage_value(void){    int adc_max = 4095;    int adc_new = 0;    int Percentage_value = 0;
   adc_new = Get_Adc_Value();
   Percentage_value = ((float)adc_new/(float)adc_max) * 100.f;    return Percentage_value;}


在文件bsp_mq2.h中,编写如下代码。


/* * Change Logs: * Date           Author       Notes * 2024-06-19     LCKFB-LP    first version */#ifndef _BSP_MQ2_H_#define _BSP_MQ2_H_
#include "board.h"

#define RCC_MQ2_GPIO_ENABLE()       __RCC_GPIOA_CLK_ENABLE()#define RCC_MQ2_ADC_ENABLE()        __RCC_ADC_CLK_ENABLE()
#define GPIO_ANALOG_ENABLE()        PA05_ANALOG_ENABLE()        // PA05设定为模拟输入
#define MQ2_ADC_CHANNEL             ADC_ExInputCH5
#define PORT_MQ2                    CW_GPIOA
#define GPIO_MQ2_AO                 GPIO_PIN_5#define GPIO_MQ2_DO                 GPIO_PIN_1
//采样次数#define SAMPLES         30


/************************
//之前的单路采集void ADC_Init(void);unsigned int Get_ADC_Value(void);
**************************/void Adc_Init(void);unsigned int Get_Adc_Value(void);unsigned int Get_MQ2_Percentage_value(void);unsigned int Get_MQ2_Percentage_value(void);
#endif


04移植验证

在自己工程中的main主函数中,编写如下。


/* * Change Logs: * Date           Author       Notes * 2024-06-19     LCKFB-LP    first version */#include "board.h"#include "stdio.h"#include "bsp_uart.h"#include "bsp_mq2.h"
int32_t main(void){    board_init();        // 开发板初始化
   uart1_init(115200);        // 串口1波特率115200
   Adc_Init();    printf("ADC demo start\r\n");    while(1)    {
       printf("ADC_Value = %d\r\n", Get_Adc_Value() );        printf("MQ2 = %d\r\n", Get_MQ2_Percentage_value() );        delay_ms(1000);    }}


上电现象:输出ADC值和换算后的烟雾浓度百分比。



模块移植成功案例代码:

链接:https://pan.baidu.com/s/1SxQwSnjxsO1ibioy1xUIPw?pwd=LCKF

提取码:LCKF

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由唯独你没懂转载自武汉芯源(CW32生态社区公众号),原文标题为:【CW32模块使用】MQ-2烟雾检测传感器,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

使用JLink烧录CW32程序

本篇主要介绍使用JLink烧录CW32程序。

2024-03-15 -  设计经验 代理服务 技术支持 批量订货

【经验】基于CW32的AS608指纹模块的应用

AS608是一款集成了指纹图像采集和指纹比对算法的指纹识别模块。它采用了高质量的光学传感器,能够实时采集人体指纹图像,并通过指纹比对算法进行指纹识别。AS608具有高精度、快速、可靠的特点,广泛应用于各种指纹识别场景,如门禁系统、安防系统、考勤系统等。本实验用到了CW32-48F大学计划板、0.96寸OLED显示屏模块、AS608指纹模块及Keil5开发环境。

2023-09-26 -  设计经验 代理服务 技术支持 批量订货

DHT11温湿度传感器基于CW32F030C8T6开发板上实现读取温湿度的功能操作示例

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。本文的目标是在CW32F030C8T6开发板上实现读取温湿度的功能。

2024-12-07 -  设计经验 代理服务 技术支持 批量订货

【应用】基于国产32位MCU芯片CW32F030C8T6的智能门锁方案,主频64MHz,具备低功耗多功能优势

智能门锁集成3D识别算法、接近检测、指纹输入模块,低功耗计算芯片等于一体,解锁快、功耗低、续航久,现武汉芯源推出一款MCU芯片CW32F030C8T6助力于智能门锁设计。

2023-03-14 -  应用方案 代理服务 技术支持 批量订货

2023年电赛A题——国奖开源分享

根据题目要求,本项目拟设计制作一个单相逆变器并联运行系统,本系统以CW32F030C8T6核心板为控制核心,由直流电源、隔离变压器、全桥逆变电路、采集电路、驱动电路、LC低通滤波电路和辅助电源组成。从机采用DQ锁相环进行相位追踪,通过生成双极性SPWM波对全桥逆变电路调制,产生正弦交流电。利用PID算法进行电流、电压闭环控制,逆变器实现稳流,稳压来实现并联,并网运行。

2023-12-26 -  原厂动态 代理服务 技术支持 批量订货

US-016超声波测距传感器移植至CW32F030C8T6开发板上能够判断前方障碍物距离的功能实例

介绍了US-016超声波测距模块的特性和在CW32F030C8T6开发板上的应用。本文移植目标是将例程移植至CW32F030C8T6开发板上【能够判断前方障碍物距离的功能】。

2024-12-05 -  设计经验 代理服务 技术支持 批量订货

武汉芯源半导体邀您相约CITE2024中国电子信息博览会

CITE2024第十二届中国电子信息博览会将于2024年4月9-11日在深圳福田会展中心隆重开展,武汉芯源半导体将为电子行业参观者展示智能指纹锁、麦克风、燃气表、LED调光板、可燃气体报警器、筋膜枪、角磨机、血氧仪、温控器、BLDC无刷电机、永磁同步电机无感FOC控制方案等多款CW32单片机典型应用方案,诚邀您莅临9B122武汉芯源半导体展位参观交流!

2024-04-05 -  原厂动态 代理服务 技术支持 批量订货

基于CW32F030C8T6芯片通过智能控制技术完成智能小车项目代码和功能说明

本文介绍了使用CW32F030C8T6芯片完成的全国电子竞赛H题智能小车项目。项目核心是利用CW32F030C8T6芯片的强大处理能力和丰富外设支持实现智能控制。硬件方面,包括PWM电机控制、五路循迹模块、OLED显示和角度传感器。软件部分采用结构化编程,涵盖底层驱动、外设控制和主程序逻辑。主程序包含变量定义、任务执行、硬件初始化等,支持模式切换以应对不同竞赛场景。

2024-08-27 -  设计经验 代理服务 技术支持 批量订货

【CW32模块使用】雨滴传感器

文章介绍了雨滴传感器的工作原理和在汽车智能灯光系统、自动雨刷系统、智能车窗系统中的应用。传感器通过检测水滴的导电性来判断是否下雨,利用电极间的电导性变化来测量水滴存在。文章还提供了传感器模块的移植过程和代码示例,展示了如何将传感器数据读取和处理集成到CW32F030C8T6开发板上。

2024-12-04 -  设计经验 代理服务 技术支持 批量订货

【应用】基于CW32的无刷水泵控制系统,使水泵更加节能、高效

本课题研究的目的是设计一套基于CW32的无位置传感器无刷直流电机控制系统,既可以改进水泵的工作模式,使水泵工作点最优;又可以使水泵电机结构简单,控制方式更为灵活。以此将整个系统加入各个不同场景中,让CW32低功耗优点,能让水泵共更加节能,高效。

2023-09-15 -  应用方案 代理服务 技术支持 批量订货

【经验】武汉芯源半导体CW32系列微控制器如何进入ISP模式以及ISP协议详解

武汉芯源半导体CW32系列微控制器片上FLASH存储器有一部分区域用于存储BootLoader启动程序,用户可利用BootLoader启动程序提供的ISP模式,通过UART串口方便地实现对CW32微控制器片上FLASH主存储器的擦除和烧写。

2022-08-15 -  设计经验 代理服务 技术支持 批量订货

CW32F030C8T6 from Wuhan Core Source is Used in Combustible Gas Detector, Ensures Safe Operation in Harsh Electromagnetic Interference Environments

With the advancement of electronic science and technology, the combustible gas detector has become an essential tool for safety protection. This detector converts the concentration of leaked combustible gases into electrical signals and issues alarm signals to remind staff to take safety measures. The CW32F030C8T6, as the main control chip, provides excellent system protection with its high-precision ADC, fast conversion speed, high reliability, strong ESD protection, and strong anti-interference characteristics, ensuring safe operation in harsh electromagnetic interference environments.

2024-11-26 -  应用方案 代理服务 技术支持 批量订货

【经验】芯源CW32系列MCU电容式触摸按键设计指南

芯源半导体的CW32系列MCU电容式触摸按键设计指南向客户提供利用CW32内部资源结合软件编程实现电容式触摸按键有效触摸检测的方法。本指南内容重点在于工作原理、软件检测过程以及调试指引。通过本文可了解到如何利用内置电压比较器和内置定时器及软件配合,实现灵活方便的按键检测。在介绍标准演示板和演示软件的性能参数同时,还会给出详细的调试建议以及设计参数选择倾向分析,帮助客户快速自信地完成设计并实施调试。

2023-07-27 -  设计经验 代理服务 技术支持 批量订货

基于CW32的无刷直流空心杯电机有感控制驱动方案

空心杯电机(Hollow-Cup Motor)是一种特殊类型的微型无刷直流电机,具有空心的旋转部分。它通常由外部固定的外壳和内部旋转的空心杯组成。空心杯电机具有较高的功率密度和扭矩输出,适用于一些特定的应用场景,如精密仪器、机器人、医疗设备等。空心杯电机的工作原理是基于无刷直流电机的原理。它采用无刷电机的结构,包括定子(固定部分)和转子(旋转部分)。

2024-05-16 -  应用方案 代理服务 技术支持 批量订货

【CW32模块使用】VL53L0X激光测距传感器

VL53L0X是ST公司推出的新一代 ToF 激光测距传感器,采用了第二代 FlightSenseTM技术,利用飞行时间(ToF)原理,通过光子的飞行来回时间与光速的计算,实现测距应用。本文的目标是在CW32F030C8T6开发板上能够实现测量距离的功能。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。

2024-11-18 -  设计经验 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:华芯微特

品类:开发板

价格:¥225.0000

现货: 1,000

品牌:华芯微特

品类:开发板

价格:¥225.0000

现货: 1,000

品牌:广芯微电子

品类:模块

价格:¥13.0000

现货: 305

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥65.0000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:开发板

价格:¥259.1316

现货:48

品牌:RENESAS

品类:开发板

价格:¥4,100.0000

现货:20

品牌:迅为

品类:开发板

价格:¥378.2000

现货:15

品牌:RENESAS

品类:开发板

价格:¥9,093.1765

现货:8

品牌:RENESAS

品类:EVALUATION BOARD

价格:¥20,004.9883

现货:7

品牌:RENESAS

品类:开发工具

价格:¥234.0000

现货:7

品牌:RENESAS

品类:DEMO BOARD

价格:¥2,134.9768

现货:7

品牌:华普微电子

品类:开发板

价格:¥200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥2,200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥4,000.0000

现货:5

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

FR4/高频高速PCB加工

可加工PCB板层数1~40,最小线宽/间距内层: 2.5/3mil (H/H OZ base copper);最小线宽/间距外层: 3/3mil (H/H OZ base copper);成品交货尺寸范围:10 * 10mm~570 * 1200mm。板厚范围:0.4mm-10mm。支持通孔板、HDI板、柔性板、刚柔结合板打样、小批量及批量生产。

最小起订量: 1 提交需求>

PCB快板打样定制

可加工PCB层数:1-30层;板材类型:FR4板/铝基板/铜基板/刚扰结合板/FPC板/高精密板/Rogers高频板;成品尺寸:5*5mm~53*84cm;板厚:0.1~5.0mm。

最小起订量: 1 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面