一.系统概述
系统使用STM32单片机进行系统主控,使用PM2.5粉尘检测模块进行粉尘浓度检测,实时显示粉尘浓度,当检测到粉尘浓度超过设定阈值就会报警。
二.仿真概述
1. 通过LCD1602实时显示粉尘浓度和设定的阈值,粉尘传感器进行粉尘检测,通过声光报警进行粉尘浓度超限提醒
2. 通过调节PM2.5传感器的滑动变阻器进行PM2.5的浓度调节,当检测到浓度超过阈值就会控制声光报警电路进行报警
3. 通过按键进行PM2.5浓度阈值的设定,有阈值加和阈值减按键
三.程序设计
#include "sys.h" #include "delay.h" #include "pcf8591.h" #include "1602.h" #include "stm32f10x.h" #include "Beep_Led_Relay.h" #include "delay.h" #include "key.h" /************************************************ 版权:小常硬件 公众号:微信搜索“小常硬件“在公众号免费下载相关资料 ************************************************/ int main(void) { u8 PMmax=65; u8 c; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 delay_init(); //延时函数初始化 LCD1602_GPIO_Configuration(); PCF8591_Init(); Led1_init();//pb13 KEY1_Init();//pb14pb15 write_str(0,0,(u8*)"PM2.5:"); write_str(0,1,(u8*)"PMmax:"); while(1) { if(KEY1==0|KEY2==0) { delay_ms(10); if(KEY1==0) { PMmax++; } if(KEY2==0) { PMmax--; } delay_ms(200); } write_num(6,1,PMmax); c= PCF8591_ADC_Input(0x90,1); write_num(6,0,c); if(c>PMmax) { write_str(11,1,(u8*)"Exc"); Led1_1=1; delay_ms(200); write_str(11,1,(u8*)" "); Led1_1=0; delay_ms(200); } } }
全部0条评论
快来发表一下你的评论吧 !