基于STM32单片机的智能窗帘控制系统设计

描述

一.系统概

系统以STM32单片机进行主控,系统内使用血氧传感器进行血氧检测,通过电机控制采集血。按键控制采血和检测。

控制系统

 

二.仿真概述

1. 仿真开始运行在串口助手端就能接受OK响应指令,代表连接成功,网页端串口助手如下:

  https://serial.keysking.com/

控制系统

2. 发送十进制1控制拉上窗帘,显示屏上显示的001代表拉窗帘

控制系统

控制系统

3. 发送十进制2控制打开窗帘,显示屏上显示的002代表打开窗帘

控制系统

控制系统

4. 按下设置按键可以对温度和光强阈值进行设定,模式按键可以切换自动/手动,手动模式下可以直接控制窗帘的打开和关闭

控制系统

5. 按下模式按键显示屏上显示Au代表自动,此时会根据设定的温度、光强阈值进行打开和关闭窗帘的控制,温度或者光强超过设定的阈值区间则拉窗帘,温度或者光强低于设定的阈值区间则打开窗帘。

控制系统

 

三.程序设计

 

#include 
 
//
u8 Rxdat;
u8 adc,t,h,m=0,c=0,set=0,th=30,tl=15,hh=30,hl=20;
//
 
 
//
void UserDispiayControl(void);
void SetDisplay(void);
void Set(void);
//
 
 
int main(void)
{
  //Init Star
  Usart1_Init(9600);//pa9-10
  Lcd1602_Init();//pc0-7 pb0-2
  Key_Init();//pa12-15
  PCF8591_Init();//pb10-11
  Motor_Init();//pb12-15
  DHT11_Init();//pa0
  //Init End
  
  
  //display star
  Usart1_TxString("ok");
  //display end
  
  
  while(1)
  {
    //get dat
    DHT11_Read_Data(&t,&h);
    adc=PCF8591_ADC_Input(0x90,1);
    //串口收数据
    if(Usart1_GetRxFlag() ==1)      //判断是否收到数据
    {      
      Rxdat=Usart1_GetRxDat();    //存数据
      Usart1_TxByte(Rxdat);      //回传显示
      Lcd1602_Write_Num8(0xc0,Rxdat);  //显示屏显示
    }
    //get dat
    
    
    //key
    if(Key4==0)  
    {
      m=~m;
      while(Key4 != 0);
    }
    if(Key3==0)  
    {
      Lcd1602_Write_CD(CMD,0X01);
      set++;
      if(set==5) set=0;
    }    
    //key
    
    //user+set
    Set();
    //
  }
}
 

 

 

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

全部0条评论

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

×
20
完善资料,
赚取积分