当前位置: 首页 > news >正文

S0011基于51单片机DS18B20温控风扇仿真设计

基于51单片机DS18B20温控风扇仿真设计

(仿真+原理图+源码+设计报告)

原理图:Altium Designer

仿真原版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0011

目录标题

  • 基于51单片机DS18B20温控风扇仿真设计
    • 功能说明
    • 仿真电路
    • 原理图
      • 总设计框图
      • 温度检测和显示电路
      • DS18B20的温度处理方法
    • 软件设计
      • 主函数
    • 设计报告
    • 资料清单

功能说明

​ 基于单片机的风扇温控仪采用DS18B20传感器,将检测到的温度转化为数字信号,单片机对输入的数字信号进行分析处理,当感应到人体温度高于上限值时,风扇全速旋转;当温度低于下限时,风扇停转;当温度处于上限值与下限之间时,风扇转速越慢,当人走30秒后自动关闭风扇。

img

仿真电路

img

原理图

总设计框图

image-20220903125635453

传统电风扇供电采用的是220V交流电,电机转速分为几个档位,通过人工手动调整电机转速达到改变风速的目的,亦即,每改变一次风力,必然有人参与操作,这样就会带来诸多不便。

本文介绍了一种基于STC89C52单片机的智能电风扇调速器的设计,该设计巧妙利用红外线遥控技术、单片机控制技术、无级调速技术和温度传感技术,把智能控制技术应用于家用电器的控制中,将电风扇的电机转速作为被控制量,由单片机分析采集到的数字温度信号,再通过可控硅对风扇电机进行调速。从而达到无须人为控制便可自动调整风速的效果。

温度检测和显示电路

可以选用LM324A运算放大器作为温度传感器,将其设计成比例控制调节器,输出电压与热敏电阻的阻值成正比,但这种方案需要多次检测后方可使采样精确,过于烦琐。所以我采用更为优秀的DS18B20数字温度传感器,它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。

DS18B20的温度处理方法

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源,因而使用DS18B20可使系统结构更趋简单可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

DS18B20简介:

(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

(2)在使用中不需要任何外围元件。

(3)可用数据线供电,电压范围:+3.0~ +5.5 V。

(4)测温范围:-55 ~+125 ℃。固有测温分辨率为0.5 ℃。

(5)通过编程可实现9~12位的数字读数方式。

(6)用户可自设定非易失性的报警上下限值。

(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。

(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

单线(1—wire)技术:

该技术采用单根信号线,既可传输时钟,也能传输数据,而且是双向传输。适用于单主机系统,主机能够控制一个或多个从机设备,通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能释放该线,而让其他设备使用。单线通常要求外接一个5K的上拉电阻,这样当该线空闲时,其状态为高电平。

主机和从机之间的通讯分成三个步骤:初始化单线器件、识别单线器件和单线数据传输。

单线1—wire协议由复位脉冲、应答脉冲、写0、写1、读0、读1,这几种信号类型实现,这些信号中除了应答脉冲其他都由主机发起,并且所有指令和数据字节都是低位在前。

DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器件的工作时序。

img

软件设计

​ 本系统的运行程序采用C语言编写,采用模块化设计,整体程序由主程序和显示、键盘扫描、红外线接收以及电机控制等子程序模块组成。

img

主函数

在主程序进行初始化后,开始反复检测各模块相关部分的缓冲区的标志,如果缓冲区置位,说明相应的数据需要处理,然后主程序调用相应的处理子模块。

image-20220903125820822

void main()
{
	static uchar value;
	time_init();                    //初始化定时器 
	temperature = read_temp();		//先读出温度的值	
	delay_1ms(650);				
	temperature = read_temp();		         //先读出温度的值
	dis_smg[0] = smg_du[temperature % 10];	 //取温度的小数显示
	dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示
	dis_smg[2] = smg_du[temperature / 100 % 10] ;	   //取温度的十位显示
	while(1)
	{		
		key();					//按键程序
		if(key_can < 10)
		{
			key_with();			//设置报警温度	
		}
		if(flag_200ms == 1)	    //200ms 处理一次温度程序
		{	   
			flag_200ms = 0;	
			temperature = read_temp();	//先读出温度的值
			if(menu_1 == 0)
			{	
				smg_i = 3;
				dis_smg[0] = smg_du[temperature % 10];	 //取温度的小数显示
				dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示
				dis_smg[2] = smg_du[temperature / 100 % 10] ;	   //取温度的十位显示
			}
			fengshan_kz();        //风扇控制函数
			value ++;
			if(value >= 4)
			{
				value = 0;
				if(miao != 0)
				{
					miao --;    //时间减1
				}
				if(miao == 0)
					flag_en = 0;
			}
			if(hw == 1)  //感应到人
			{
				miao = 30;
				flag_en = 1;
			}
		}

		display();		//数码管显示函数
	}
}

定时器

/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{	
	static uchar value;			 //定时2ms中断一次
	TH0 = 0xf8;
	TL0 = 0x30;     //2ms
	value++;	  
	if(value >= 150)
	{
		value = 0;	  
		flag_200ms = 1;
	}
	if(flag_lj_en == 1)	   //按下按键使能
	{
		key_time ++;
		if(key_time >= 250) //500ms
		{
			key_time = 0;
			key_500ms = 1; //500ms
			key_value ++;
			if(key_value > 3)
			{
				key_value = 10;
				flag_lj_3_en = 1; //3次后1.5秒连加大些
			}						
		}
	}
}


/*******************定时器1用做单片机模拟PWM 调节***********************/
void Timer1() interrupt 3  //调用定时器1
{
	static uchar value_l;
	TH1=0x0f;    //    定时中断一次
	TL1=0xec;	 //
	if(pwm==1)
	{
		value_l+=3;
		if(value_l > f_pwm_l)   //高电平
		{
			value_l=0;
				pwm=0;	 
		}
	}
	else				
	{
		value_l+=3;
		if(value_l  > 100 - f_pwm_l)		  //低电平
		{
			value_l=0;
			pwm=1;
		}
    }
}

设计报告

img

绪 论

近些年来,随着空调行业的迅速发展,空调价格的大幅度“跳水”,电风扇行业曾被普遍认为是“夕阳产业”。其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。其主要原因:一是风扇和空调的降温效果不同;(空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用。)二是电风扇有价格优势,价格便宜而且相对省电,安装和使用都非常简单。

传统电风扇多采用机械方式进行控制,功能少,噪音大,各档的风速变化大。随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、环保化和人性化,使得由微机控制的智能电风扇得以出现。

生活中,我们经常会使用一些与温度有关的设备。比如,现在虽然不少城市家庭用上了空调,但在占中国大部分人口的农村地区依旧使用电风扇作为降温防暑设备,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我们设计了这套温控自动风扇系统。本系统采用高精度集成温度传感器,用单片机控制,能显示实时温度,并根据使用者设定的温度自动在相应温度时作出小风、大风、停机动作,精确度高,动作准确。

资料清单

资料下载链接

img

相关文章:

  • express演示前端解决跨域的方法jsonp、cors
  • SCA Sentinel 分布式系统的流量防控(二)
  • 姿态分析开源工具箱MMPose安装及使用示例(2d face landmark detection)
  • Java8中anyMatch()、allMatch()、noneMatch()用法详解
  • 【SpringMVC】SpringMVC实现转发和重定向
  • 离散化模板
  • 一种加权变异的粒子群算法-附代码
  • 带符号整数的除法与余数
  • Spring Cloud集成Dubbo实现RPC调用
  • 怎么开发自己的NFT平台
  • Android Context
  • 架构师的 36 项修炼第10讲:架构实战案例分析
  • 力扣每日一题-第63天-867. 转置矩阵
  • java基于ssm+vue的考研信息查询系统 elementui
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[29]总结
  • JS 中的深拷贝与浅拷贝
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • axios 和 cookie 的那些事
  • ComponentOne 2017 V2版本正式发布
  • Cookie 在前端中的实践
  • gcc介绍及安装
  • HTTP那些事
  • java取消线程实例
  • JS笔记四:作用域、变量(函数)提升
  • Kibana配置logstash,报表一体化
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 回顾2016
  • 计算机常识 - 收藏集 - 掘金
  • 简单基于spring的redis配置(单机和集群模式)
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 浅谈Golang中select的用法
  • 如何使用 JavaScript 解析 URL
  • 如何用vue打造一个移动端音乐播放器
  • Spring Batch JSON 支持
  • 进程与线程(三)——进程/线程间通信
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #pragma pack(1)
  • $().each和$.each的区别
  • (javascript)再说document.body.scrollTop的使用问题
  • (附源码)计算机毕业设计高校学生选课系统
  • (推荐)叮当——中文语音对话机器人
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)关于pipe()的详细解析
  • .NET 的程序集加载上下文
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .Net中的集合
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • [1181]linux两台服务器之间传输文件和文件夹
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [BJDCTF2020]The mystery of ip
  • [hibernate]基本值类型映射之日期类型
  • [IDF]聪明的小羊