基于STM32单片机的智能温控风扇系统设计

描述

一.系统概

系统通过STM32单片机进行主控,系统内通过温度传感器进行温度检测,并通过显示屏进行显示。系统内分为手动和自动两种控制方式,在手动模式下通过按键可以调节风扇的档位,档位越高转速越高,在自动模式下根据设置的温度阈值来启动风扇启动。

温控风扇

 

二.仿真概述

1.  通过LCD1602显示屏进行温度和阈值以及模式的显示,通过调节DS18B20的红色按钮调节温度

温控风扇

2.  自动模式下当检测到温度超过设定阈值就会报警提醒,并开启风扇

温控风扇

3.  按下自动/手动切换按键后就会切换到手动控制方式,按下加减按键就能直接控制风扇

温控风扇

 

三.程序设计

 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
 
int main(void)
{  
  u8 Tmax = 30,Tmin = 25,mode=0,d=0;
  
  Key_Init();
  Lcd1602_Init();
  Beep_Init();//PC4
  Ds18b20_Init();//PA12
  Motor_Init();//pc0-4
  
  Lcd1602_Write_String(0x80,2,(u8*)"T:");
  Lcd1602_Write_String(0xc3,2,(u8*)"D:");
  
  while(1)
  {
    u8 t =Ds18b20_Temp() ;
    Lcd1602_Write_Num8(0x82,t);
    
    Lcd1602_Write_Num8(0x88,Tmax);
    Lcd1602_Write_String(0x87,1,(u8*)"-");
    Lcd1602_Write_Num8(0x85,Tmin);
  
    if(Key3==0)
    {
      mode=~mode;
      Lcd1602_Write_String(0xc5,3,(u8*)"   ");
    }
    if(mode)//手动
    {
      Lcd1602_Write_String(0xc0,2,(u8*)"Sd");
      Lcd1602_Write_Num8(0xc5,d);
      if(Key0==0)
      {
        d++;
        if(d>3){d=0;}
      }
      if(Key1==0)
      {
        d--;
        if(d<1){d=4;}
      }
      //
      if(d==1)
      {
          Motor_418_Turn(0,200);
      }
      else if(d==2)
      {
          Motor_418_Turn(0,50);
      }
      else if(d==3)
      {
          Motor_418_Turn(0,20);
      }
    }
}
 

 

 

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

全部0条评论

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

×
20
完善资料,
赚取积分