系统采用51单片机+DS18B20温度传感器+风扇+LCD1602液晶。
实现DS18B20采集温度,LCD1602液晶显示当前温度以及上下限值,风扇档位情况。
系统设置为三个档位,利用单片机PWM调速。
当温度低于下限时风扇停止转动。
当温度介于上下限之间时,风扇处于1档以50%速度转动。
当温度高于上限时,风扇处于2档全速转动。
可增加人体感应模块 检测到人体 风扇启动以及红外遥控功能 通过红外遥控替代按键设置功能
可增加手动模式在原有基础功上 用户可以自行控制风扇转速
可增加时间显示功能 年月日 时分秒 星期 按键也可以修改日期
可增加蓝牙模块 用户可以通过手机端app连接蓝牙控制风扇 开关以及相应档位
可增加蓝牙模块 用户不光以上功能,还可以查看到档位温度设置的上限下限值
可提供源码 原理图 材料清单 开题报告 参考文档 等
/*QQ 2696472421
时间 2022年4月6日 00:34:04*/
/****************主函数***************/
void main()
{
uchar value;
time_init(); //初始化定时器
temperature = read_temp(); //先读出温度的值
delay_1ms(750);
temperature = read_temp(); //先读出温度的值
while(1)
{
key(); //按键程序
if(key_can > 0)
key_with(); //设置温度
if(flag_300ms == 1) //300ms 处理一次程序
{
flag_300ms = 0;
temperature = read_temp(); //先读出温度的值
if(menu_1 == 0)
{
dis_smg[0] = smg_du[temperature % 10]; //取温度的小数显示
dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示 0xdf是显示小数点
dis_smg[2] = smg_du[temperature / 100 % 10] ; //取温度的十位显示
dis_smg[3] = 0xFF; //不显示
}
fengshan_kz(); //风扇控制函数
value ++;
if(value >= 4)
{
value = 0;
if(miao != 0)
{
miao --; //时间减1
}
if(miao == 0)
flag_en = 0;
}
if(hw == 1) //感应到人
{
miao = 30; //重新计时30秒
flag_en = 1;
}
}
display(); //数码管显示函数
delay_1ms(1);
}
}