标题:
STM32温控风扇代码
[打印本页]
作者:
赵杰赵杰
时间:
2021-11-27 19:48
标题:
STM32温控风扇代码
温控风扇源码
#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "usart.h"
#include "stdio.h"
#include "dht11.h"
//DHT11 接线方法:三个引脚,-接地,S接PB14,中间接3.3v
//u8 buff[30]; //参数显示缓存数组
u8 DHT11_Temp,DHT11_Hum; //温湿度
int main(void)
{
u8 flag =0; //作为手动挡和自动挡
int pluse=200; //保存捕获比较寄存器的值
int j=0; //电风扇手动挡档数
delay_init();
TIM3_PWM_Init();
DHT11_Init();
uart_init(115200);
fan_gpio();
while(1)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==1)//WA_UP
{
delay_ms(100);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==1)
{
flag+=1;
}
}
//我用的板子按键有问题,所以一上电就进入手动模式了
// /*自动情况*/
if(!flag%2)
{
printf("自动调速模式中\r\n" );
DHT11_Read_Data(&DHT11_Temp,&DHT11_Hum);
printf("当前温度:%d℃ 当前湿度:%d%%\r\n",DHT11_Temp,DHT11_Hum);
delay_ms(1000);
if(DHT11_Temp>=30)
{
TIM_SetCompare2(TIM3,0); //全速开风
}
else if(25<DHT11_Temp&&DHT11_Temp<30)
{
TIM_SetCompare2(TIM3,80); //
}
else{
TIM_SetCompare2(TIM3,200); //关闭
}
}
//
// /*手动模式*/
if(flag%2)
{
printf("手动调速模式中\r\n" );
printf("按Key0进行档位切换,当前挡位:%d\r\n\r\n" ,j);
TIM_SetCompare2(TIM3,pluse); //关闭
delay_ms(1000);
delay_ms(1000);
if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_4)==0)//KEY0
{
delay_ms(10);
if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_4)==0)
{
pluse=pluse-50;
j=j+1;
if(pluse<0)
{
pluse=200;
j=0;
}
TIM_SetCompare2(TIM3,pluse); //关闭
}
}
}
}
}
复制代码
Keil代码下载:
温控风扇代码.7z
(197.95 KB, 下载次数: 28)
2021-11-28 04:01 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
heicad
时间:
2021-11-28 04:03
这个没有原理图不知道怎么接线啊?能分享下原理图吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1