温控风扇系统设计 联系客服

发布时间 : 星期一 文章温控风扇系统设计更新完毕开始阅读2b73dc47dcccda38376baf1ffc4ffe473368fd29

DS18B20的引脚图如 图6所示。 引脚1:地;

引脚2:数字输入输出; 引脚3:可选的5V电源;

图6DS18B20的引脚图

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20控制方法(DS18B20有六条控制命令): 温度转换 44H 启动DS18B20进行温度转换 读暂存器 BEH 读暂存器9位二进制数字 写暂存器 4EH 将数据写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中

重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU

8.1 初始化

(1) 先将数据线置高电平“1”。

(2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0”。

(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。 (5) 数据线拉到高电平“1”。

(6) 延时等待(如果初始化成功则在15到60微妙时间之内产生一个由DS18B20所返回的

低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电

平算起(第(5)步的时间算起)最少要480微秒。 (8) 将数据线再次拉高到高电平“1”后结束。

9

8.2 写操作

(1) 数据线先置低电平“0”。 (2) 延时确定的时间为15微秒。

(3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为45微秒。 (5) 将数据线拉到高电平。

(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。

8.3 读操作

(1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时3微秒。 (5)将数据线拉高“1”。 (6)延时5微秒。

(7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时60微秒。

9、风扇

本设计采用的是由5V直流供电的小型风扇。在设计当中,我们只预置了两档速度相差明显的档位,一档的PWM占空比为30%,二档的占空比为90%。这样设计的目的主要是考虑到在档位切换时,可以看到速度有非常明显的变化,让实验现象更加直观。

拓展1:

在主要考虑实用性方面的因素,我们还可以将控制档位细化,做成5个档位,甚至10个档位,等等。不同的速度是通过调节不同的占空比来实现的。下面我们给出温度控制风扇转5个速度不同档位的部分关键程序示例: void control (void)

{

if((a*100+b*10+c)< tem_1) {

10

CCAP0H = CCAP0L = 0xFF; //PWM0 口输出 0%占空比 }

else if (tem_1 <= (a*100+b*10+c)&&(a*100+b*10+c)

CCAP0H = CCAP0L = 0xB3; //PWM0 口输出30%占空比 }

else if (tem_1 <= (a*100+b*10+c)&&(a*100+b*10+c)

CCAP0H = CCAP0L = 0x08; //PWM0 口输出50%占空比 }

else if (tem_1 <= (a*100+b*10+c)&&(a*100+b*10+c)

CCAP0H = CCAP0L = 0x4D; //PWM0 口输出70%占空比 }

else if (tem_2 <= (a*100+b*10+c)) {

CCAP0H = CCAP0L = 0x1A; //PWM0 口输出90%占空比 } }

拓展2:

在本设计验证成功并且可靠的基础上,我们可以继续延伸,给出温度控制交流220V供电的风扇的设计方案,比如宿舍的风扇:

用普通的单片机,通过温度传感器,读取外界的温度,进而控制继电器的吸合与断开。假设设置4个档位,可以用单片机接三个继电器来实现:

当外界温度较低时,此时所有继电器处于断开状态,风扇不转;

当温度升高到一定程度时,单片机使继电器1吸合,继电器2、3断开,让风扇转一档,即较慢速度;

当温度继续升高,单片机使继电器2吸合,继电器1、3断开,风扇转二档,即较快的速度。

当温度再升高时,单片机使继电器3吸合,继电器1、2断开,风扇转三档,即最快的速度。

11

10、硬件电路设计

10.1原理图和部分电路PCB图

图7原理图

工作原理:

通过P3.7端口处所接的电路的SW2的闭合或断开选择温控或键控。

当SW2=1时,选择温控,通过DS18B20温度传感器获取外界温度,通过LCD显示当前温度,并且显示设定的温度控制一档和二档的值,比如设定25和30摄氏度作为控制值。外界温度较低时,比如小于25摄氏度,处于0档时,风扇不转,LED1、2不亮。当温度较高,等于或大于25且小于30摄氏度时,处于一档,风扇转动,LED1亮、LED2灭。当温度高于30摄氏度时,处于二档,风扇高速转动,LED1、2都亮。

当SW2=0;选择键控,通过P2.0处所接的独立键盘进行档位的选择。缺省状态下为空挡,液晶屏显示DW=0,LED1、2不亮,风扇不转。按一次key1,档位加一,此时为一档,液晶屏上显示DW=1,LED1亮、LED2灭,风扇转动较慢。再按一次key1键,档位加1,此时

12