HAL库编写MQ2烟雾传感器程序
创作时间:
作者:
@小白创作中心
HAL库编写MQ2烟雾传感器程序
引用
CSDN
1.
https://blog.csdn.net/kbqn_138/article/details/137510058
本文将介绍如何使用HAL库编写MQ2烟雾传感器程序。通过Cubemx配置芯片、编写代码以及硬件连接等步骤,实现烟雾浓度的检测。
一、Cubemx配置
- 选好自己的芯片,选择外部高速时钟
- 打开ADC,任选一个通道(这里我选的是ADC1通道7采集),打开后将continuous conversion使能
- 打开串口1,设置异步发送模式,方便将结果通过串口打印在电脑上
- 配置时钟树,生成keil文件
二、代码
- 将串口重定向代码添加到usart.c文件
#include "stdio.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
UART_HandleTypeDef huart1;
//usart.c ??
int fputc(int ch, FILE *f) //????,????,??????????
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, sizeof(ch), 0xFFFF);
return ch;
}
/*HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)*/
int fgetc(FILE *f) //????,????,??????????
{
uint8_t ch;
HAL_UART_Receive(&huart1, (uint8_t *)&ch, sizeof(ch), 0xFFFF);
return ch;
}
- main.c文件(将我的主函数复制粘贴即可)
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
uint32_t ADC_Value;
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ADC1_Init();
MX_USART1_UART_Init();
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,7);
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
{
ADC_Value = HAL_ADC_GetValue(&hadc1);
}
printf(" ADC channe7 value = %1.3f%% \r\n", ADC_Value*100.0f/4096);
HAL_Delay(500);
//ADC_Value=(float)ADC_Value*3.3f/4096;
// printf(" smoke = %1.3f%% \r\n", float (ADC_Value/3.3)*100);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
- 打开魔术棒,选用Use MicroLIB(如果不选用就无法发送到电脑,至于原因请参考https://blog.csdn.net/qq_36098477/article/details/117666808这篇文章解释的很清楚)
三、硬件连接
将MQ2的DO(模拟输出)悬空,只用连接AO(数字输出),GND,VCC(5v)三脚。
四、实现效果
前面是正常环境烟雾浓度,后面是用打火机气体测试的qwq
五、总结
实验原理:MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。
实验感悟:对于ADC本次实验只是最基础的单通道采集,还有多通道采集,中断采集等需要继续探寻。
热门推荐
胡松华:《草原上升起不落的太阳》背后的艺术人生
陈建斌抖音首秀《外外外星人》,54岁帝王化身“搞怪歌手”
抖音网红模仿陈建斌唱RAP,一首歌获百万点赞
江苏首创“学历+技能”贯通培养模式,为技工院校招生改革注入新活力
夫妻共同财产中的银行存款分割
广西民族博物馆探秘+桂林山水游:跟着专业导游阿洁玩转广西
陈建斌主演《暗潮缉凶》:迷雾剧场2024年悬疑力作
斯嘉丽·约翰逊经典电影TOP5,你最爱哪一部?
斯嘉丽·约翰逊:黑寡妇的奥斯卡之路
斯嘉丽·约翰逊和凯文·杜兰特:一场始于玩笑的"情缘"
湿疹患者饮食指南:忌食辛辣高糖海鲜,宜选清淡食物
一个亲民一个威严:陈建斌张国立诠释康熙雍正
冬季咳嗽流鼻涕,科学用药指南
从中国“借钱”最多的20个国家
哪四个国家欠中国最多钱?巴基斯坦意外排名最后?
海参虽营养,银屑病患者仍需忌口
桑叶提取物走红全球低GI市场,兼具降糖减肥功效
梦见爬山是什么预兆?周公解梦深度解析
铁皮石斛枫斗泡水:5粒为宜,浮油或藏安全隐患
今晚19:30开播,《尘封十三载》讲述新老警察破案传奇
陈建斌演绎《草木人间》“窝囊废”:从帝王到凡人的演技蜕变
沂南交通:同心共建 助力乡村振兴
山东省临沂市沂南县:同心共建凝聚合力 环境整治向“美”而行
亲人离世后怎样处理心理问题
人社部发布:技工院校招生新模式,135万招生计划释放哪些信号?
技工院校招生难,背后原因竟是?
手掌变红是病吗?一文读懂背后原因
情绪波动让你手掌变红?这招教你快速缓解
河南省肿瘤医院专家详解:厄洛替尼怎么吃才有效?
厄洛替尼服药时间,专家教你这样做