基于STM32单片机的pm2.5空气质量检测系统设计

描述

一.系统概

系统使用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);
    }    
  
  }   
}
 
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分