完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本实验是通过串口调试助手显示STM32F103C8T6采集到MQ-2传感器的电压值。
一、 概述 1. 简介 MQ-2可用于家庭和工厂的气体泄漏监装置,适宜于液化气、丁烷、丙烷、甲烷、酒精、烟雾等的探测。它的优点是灵敏度高、响应快、稳定性好。寿命长、驱动电路简单以及方便安装。 2. 工作原理 MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~3000摄氏度时,二氧化锡表面吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从面使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至面变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息烟雾浓度越大导电率越大,输出电阻越低,则输出的模拟信号就越大。 3. MQ-2特点 MQ-2烟雾传感器对液化气、天然气、城市煤气灵敏度较高。 MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。 其检测可燃气体与烟雾的范围是100~10000ppm(ppm为体积浓度。 1ppm=1立方厘米/1立方米) 双路信号输出(模拟量输出和数字量输出)。 当气体浓度未超过设定阈值时,数字接口DO口输出低电平,模拟接口A0电压基本为0v左右;当气体影响超过设定阈值时,模块数字接口D0输出高电平,模拟接口A0输出的电压会随着气体的影响慢慢增大。 二、 实验材料 最小系统STM32F10SC8T6。 MQ-2烟雾浓度传感器。 杜邦线若干。 三、 硬件连接 [tr]模块引脚GPIO[/tr]VCCVCC GNDGND D0NC(空) A0PA0 注:A0:模拟量输出接口;D0:数字量开关接口(0/1)。 四、 实现程序 1、 GPIO初始化 void ADC_Pin_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; ADC_InitTypeDef ADC_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOA,&GPIO_InitStruct); ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;//单次转换 ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;//数据对齐 ADC_InitStruct.ADC_Mode = ADC_Mode_Independent;//独立模式 ADC_InitStruct.ADC_NbrOfChannel = 1;//转换总数 ADC_InitStruct.ADC_ScanConvMode = DISABLE;//单通道扫描 ADC_Init(ADC1,&ADC_InitStruct); //转换通道 第几次转换 采样时间 ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_239Cycles5); ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE); ADC_Cmd(ADC1,ENABLE); } 2、 数据转换 u16 ADC_Trans(void) { u16 adc_value = 0; u8 i = 0; for(i = 0; i 《 50; i++) { //开始转换 ADC_SoftwareStartConvCmd(ADC1,ENABLE); //转换是否结束 while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) != SET); adc_value = adc_value + ADC_GetConversionValue(ADC1);//读ADC中的值 } return adc_value / 50;//取样50次的平均值 } 3、 主程序 int main(void) { u16 ad = 0; Sys_Delay_Init(); Usart1_Pin_Init(115200); printf(“初始化成功rn”); ADC_Pin_Init(); while(1) { ad = ADC_Trans(); // printf(“电压值:%frn”,3.3/4095*ad); //实际电压值 printf(“%.2frn”,ad * 99 / 4096.0);//把AD值转换成百分比0~99 delay_ms(1000); } } 五、 实验效果 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:42 , Processed in 0.918688 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号