图3-5 数码管显示电路
3.2.4 温度采集电路
DS18B20数字温度传感器,通过其内部的时钟的时钟周期的作用来实现温度的测量的一个独特的功能。低温度系数振荡器输出一个时钟信号,该时钟信号由一个由一个高温系数振荡器产生的栅极周期计算,计数器是预置与相应的- 55 -的基。如果计数器计数到0,高温度系数的振荡周期还没有结束,说测量温度高于设定温度是55℃,在登记的55℃的值加上1度,然后重复该过程,直到最后,高温度系数的振荡周期。当温度寄存器的值是测得的温度值,此值为16位二进制存储在内存中,主机发出的内存读命令读出的温度值,当读取在低,高,反过来。抛物型特征温度对斜坡蓄能器补偿的影响。
DS18B20在使用中,一般采用单片机实现数据采集。只要DS18B20的信号线连接1位I/O线单片机,和1位I/O线单片机可以挂多个DS18B20,单点或多点温度检测可以实现。在本设计中,DS18B20的连接到P1.7口实现温度采集,其与单片机的连接如图3-6所示。
7
图3-6 温度采集电路
3.2.5 风扇电机驱动与调速电路
本设计以单片机I/O口输出PWM脉冲,直流调速器通过Darlington反向驱动器ULN2803驱动12V的无刷电机和风扇电机的转速。
设定温度控制按钮,通过软件输入相应的控制命令给单片机,单片机通过P1.7 PWM脉冲输出和相应的ULN2803驱动风扇的转速,在直流电机控制电路,电机的速度和启停控制。当温度升高时,直流电动机的转速将按照相应的水平较高;当环境温度下降时,电动机的转速将下降;当环境温度低于设定温度时,电机停转,和环境温度高于设定温度时,电机启动。
电路图如图3-7所示,风扇电机的一端接12V电源,对ULN2803分出销的另一端,在销ULN2803和单片机P3.1引脚连接到P3.1引脚输出PWM信号,控制单片机,从而控制直流电机的转速和启动风扇停止。
8
图3-7 风扇电机驱动与调速电路
系统选用的风扇电机为12直流无刷电机,达林顿反向驱动器ULN2803输入TTL信号为5V或CMOS信号为6~15V时,输出的最大电压为50V,最大电流为500mA,工作温度范围为0~70℃。本系统中单片机I/O口输出的TTL信号为5V,因此此风扇电机可以用ULN2803来驱动。 3.2.6 电路总图
电路总图主要包括系统复位与晶振电路、独立按键连接电路、数码管显示电路、温度采集电路、风扇电机驱动与调速电路等,如图3-8所示。
图3-8 电路总图
9
10
第4章 软件设计
4.1 程序设置
软件设计包括主程序、DS18B20的初始化函数、DS18B20温度转换功能,温度读数功能,按键扫描功能,数字显示功能,温度处理功能和风扇电机控制功能。DS18B20的初始化函数完成对DS18B20 DS18B20的初始化;温度转换函数来完成对环境温度的实时采集;温度读取功能来完成主机读数据转换温度传感器的数据,按键扫描功能根据需要完成初始温度设定和处理功能;采集到的温度分析,为改变电机转速的条件;风扇电机控制功能,根据温度来控制电机的速度和启停的价值。主程序流程图如图4-1所示。
开始 调用按键扫描函数 程序初始化 调用数码管显示函数 调用DS18B20初始化函数 调用温度处理函数 调用DS18B20温度转换函数 调用风扇电机控制函数 调用温度读取函数 结束 图4-1 主程序图
11