当温度大于28°时,电机风扇以80%的占空比工作且进行高温预警蜂鸣器以0.5s为周期鸣叫,红色led以0.3s为周期交替闪烁,温度小于25°时风扇停转,绿色led常亮。其他温度以风扇以占空比50%工作,指示灯全灭。
单片机源程序如下:
- /************************************************************************************
- // 功能描述 : DHT11模块测试程序
- // 测试条件 : STM32F103C8T6 晶振8M 系统时钟72M
- 接线
- DHT11 ---------------------------------STM32F103C8T6
- VCC------------------------------------5V
- GND------------------------------------GND
- OUT------------------------------------PA0
- LED
- LED1------------------------------------PA0
- LED2------------------------------------PA0
- 蜂鸣器
- *************************************************************************************/
- #include "stm32f10x.h" // Device header
- #include "OLED.h"
- #include "Delay.h"
- #include "Motor.h"
- #include "Key.h"
- #include "DHT11.h"
- #include "LED.h"
- uint8_t Speed;
- uint8_t KeyNum;
- char R_DatBuf[6]={0};
- char T_DatBuf[6]={0};
- unsigned int th;
- unsigned int rh;
- void dat_dis()//温湿度数据处理转为字符串
- {
- R_DatBuf[0]='R';
- R_DatBuf[1]=':';
- R_DatBuf[2]=RH/10+0x30;
- R_DatBuf[3]=RH%10+0x30;
- R_DatBuf[4]='%';
- R_DatBuf[5]='\0';
- T_DatBuf[0]='T';
- T_DatBuf[1]=':';
- T_DatBuf[2]=TH/10+0x30;
- T_DatBuf[3]=TH%10+0x30;
- T_DatBuf[4]='C';
- T_DatBuf[5]='\0';
-
- }
- int main(void)
- {
- OLED_Init();
- Motor_Init();
- Key_Init();
- LED_Init();
- Buzzer_Init();
- OLED_ShowChinese(1,1,4);
- OLED_ShowChinese(1,2,5);
- OLED_ShowChinese(1,3,6);
- OLED_ShowString(1, 7, ":");
- OLED_ShowChinese(3,1,0);
- OLED_ShowChinese(3,2,1);
- OLED_ShowChinese(4,1,3);
- OLED_ShowChinese(4,2,1);
-
- while (1)
- {
- receive();//接收数据
- dat_dis();
- OLED_ShowString(3,5,T_DatBuf);
- OLED_ShowString(4,5,R_DatBuf);
- Delay_ms(10);
- if(TH>28)
- {
- Speed = 80;
- LED1_Turn();
- jiao();
- LED2_OFF();
- }
- if(TH<25)
- {
- Speed = 0;
- LED1_OFF();
- LED2_ON();
- }
- if(TH>=25&TH<=28)
- {
- Speed = 50;
- LED1_OFF();
- LED2_OFF();
- }
-
- KeyNum = Key_GetNum();
- if (KeyNum == 1)
- {
- Speed += 20;
- if (Speed > 100)
- {
- Speed = 0;
- }
- }
- Motor_SetSpeed(Speed);
- OLED_ShowSignedNum(1, 8, Speed, 3);
- }
- }
复制代码
原理图:无
仿真:无
Keil代码:
程序.7z
(188.39 KB, 下载次数: 34)
|