1设计任务
1.1 设计目的和意义
随着人们对美好生活的需求不断升高,智能家居逐渐走进人们的视线,太阳能热水器作为居民日常生活中不可缺少的一部分,其几近无污染且低耗能的特性更加符合当前时代的需求,将太阳能热水器添加到智能家居系统中,可以对智能家居系统进行完善,也能够提升用户的生活质量。
但是,太阳能热水器在使用过程中仍存在一些问题,例如在中午太阳高照的情况下热水存储桶中没有水或者水较少,集热管中的水极易被挥发干净,导致集热管干烧而温度快速上升,若是此时再注水会造成集热管炸裂。再如城市住户经常碰到,位于用水高峰时冷水压力小,尤其是太阳能热水器均安置在顶层楼房,冷水压力不足,强行上水不仅无法上水反而会消耗电能。针对这些情况设计了基于单片机的太阳能热水器控制系统,可以一定程度上解决这些问题带来的损失,促进太阳能热水器的适用性,提高智能家居为人服务的便利性。
通过本课程设计的完成使我们掌握单片机系统设计与开发,学习如何选择适合的单片机芯片并进行电路设计、编程和调试,以实现计分器功能。输入和输出接口的应用:学会使用按键或其他输入设备来记录得分和控制计时器,同时将结果通过显示屏或其他输出设备进行展示。计时器和计数器的应用,熟悉如何利用计时器和计数器模块,实现精确的计时和计数功能,以及相关的算法和逻辑。
1.2 设计任务要求
本设计的具体要求如下:
(1)能检测水位,并在规定时间按范围内当水位低于设定值时上水;
(2)每天晚上某个时间自动上水,能用按键设定自动上水时间;
(3)LCD显示当前的水位和水箱水的温度。
2 系统硬件电路的设计
2.1 检测原理
在实现水位检测功能中本设计选用超声波测距,其测定水位的基本原理如图所示,采用的是回波测距原理,只需测定超声波在空气中传播往返时间,即液位高度。由图可知,所要测量的液位高度为:
h=H-S (2-1)
式中,S可由超声波系统测量得到;H为容器的高度,本设计中H=100cm。由此可知测量液位的关键在于测出S。
图2-1 超声波测水位原理图
2.2 总体方案设计
根据系统的要求,确定系统的总体方案如图1所示。
图2-2 系统总体设计方案
本设计以单片机为为控制核心,水位监测模块能够实时监测水箱水位,自动上水模块能够根据水位情况和上水时间智能控制水泵的运行,LCD显示模块提供实时的水位、温度等信息,使用户能够直观地了解系统运行状况,键盘输入模块使用户可以方便地设置上水时间和控制系统操作,继电器辅助加热模块可以根据需要辅助加热水箱中的水。
2.3 各模块方案选择与电路设计
2.3.1 微控制器选择
方案一:PIC16C72单片机为控制器件的智能电热水器
PIC16C72是美国微芯(Microchip)公司推出的8/11位单片机,采用宽字节单周期指令,哈佛双总线和RISC结构,其数据吞吐量最高可达6MIPS,这几乎是其它大多数8位微控制器速度的4倍128脚封装的PIC16C72单片机内集成了以下主要功能:2KB片内ROM程序存储器,128KB数据存储器;22位I/O线;5路8位A/D转换器,2个8位,1个16位多功能计数器/定时器,1个捕捉/比较/脉宽调制(CCP)部件。
以PIC16C72为控制芯片的电热水器,虽然功能很强大,但是存在一些很需要改进的地方:中断的现场保护是中断应用中一个很重要的部分由PIC16C72的指令系统中没有专门的PUSH(入栈)和POP(出栈)指令,所以要用一段程序来实现该功能。对可能用到的W寄存器和STATUS寄存器内容进行现场保护1然后在中断服务程序中对马达,继电器进行控制1漏电检测报警在中断里给出,而每50ms进入一次中断,所以发生漏电时最多50ms即可切断电源1入口→中断保护→控制马达→控制继电器如果用直流对电机进行控制,其转速太快,过调量太大,容易引起震荡。
方案二:STC89C52单片机为控制器件的智能电热水器
STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
通过以上两种设计方法的比较来看,实现电热水器的智能控制可以有很多种方法。可以采用可编程序控制器PLC,各种单片机来实现。但考虑到成本控制和软硬件实现难度,采用方案二的控制系统设计,图2-3为单片机最小系统,包括晶振电路、复位电路。
图2-3 单片机最小系统
复位电路:在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当复位按键按下的时候,开关导通,电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。
晶振电路:晶体振荡器是该电路的核心组件,它包括一个晶体和两个电容。晶体的频率决定了单片机的工作时钟频率,本设计频率为11.0592MHz。晶体的一端连接到单片机的XTAL1引脚,另一端连接到XTAL2引脚。两个电容分别连接到晶体的两端,并与地连接。整个电路的目的是为单片机提供准确的时钟信号,以确保其正常运行。晶振电路在初始化时起到关键作用,通过提供稳定的时钟信号使单片机能够正确地执行程序。
2.3.2 水位检测模块设计
方案一:液位传感器检测水位
该模块主要是利用三极管的电流放大原理,当液位高度使三极管的基极与电源正极导通的时候,在三极管的基极和发射极之间就会产生一定大小的电流,此时在三极管的集电极和发射极之间就会产生一个一定放大倍数的电流,该电流经过发射极的电阻产生电压供AD转换器采集,如图2-4为液位传感器实物图,模块输出电压随模块浸入液体深度的增加而增大。
图2-4 液位传感器
方案二:超声波检测水位
超声波检测水位工作原理是由换能器(探头)发出超声波脉冲遇到被测介质表面被反射回来,部分反射回波被同一换能器接收,转换成电信号。根据超声波遇障碍反射的原理进行测距的,能够发送超声波、接收超声波并通过处理,是常用的测距模块之一。HC-SR04是最常用的超声波测距模块之一,图2-5为超声波模块实物图。
图2-5 HC-SR04实物图
液位传感器为接触式传感器,传感器未设计为完全浸入水中,在使用过程中需谨慎,防止PCB上裸露的走线与水接触。此传感器将输出0-1024之间的模拟信号,但随着走线长度的增加,可用范围会缩小。而超声波模块HC-SR04为非接触式测量,最大的优点是它可以实时检测液位的变化,可以将水位转换为数据,用户可以实时清楚地知道剩余水量。超声波液位传感器的精度可达±3mm,精度高,能够非常准确地检测液位,采用超声波测距对被测液体影响较小,更卫生。综上所述,本设计选择方案二。
HC-SR04超声波模块可提供2cm~400cm的非接触式距离感测功能,有2cm的盲区,工作电压为5V,内部模块包括超声波发射器、接收器与控制电路。表2-1为HC-SR04的引脚功能表。
表2-1 HC-SR04引脚功能表
引脚 |
功能 |
Vcc |
+5V电源供电 |
Trig |
输入触发信号 |
Echo |
传出信号回响 |
GND |
接地 |
图2-6为HC-SR04的时序图,只需要提供一个10μs以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。测量周期为60ms以上,以防止发射信号对回响信号的影响。
图2-6 超声波时序图
图2-7为超声波水位检测模块电路原理图,TR接单片机的P1.1,ECHO接单片机的P1.0,当水位在晚上十点到第二天早上七点低于20%会自动上水,可以有效避免集热管炸裂和冷水压力不足的问题。
图2-7 水位检测电路
2.3.3 温度检测模块设计
方案一:基于K型热电偶的温度检测模块
热电偶是工业中常用的一种温度传感器。它的工作原理是两种不同成份的材质导体组成闭合回路,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势。K型热电偶即镍铬-镍硅热电偶,是目前用量最大的廉金属热电偶,其使用温度为-270℃~1372℃。先使用K型热电偶对环境温度进行检查,再经过K型热电偶模数转换器—MAX6675,进行温度转换,将环境温度转换成12位二进制数据采集进单片机,以便单片机进行数据处理。
方案二:基于DS18B20的温度检测模块
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,支持3V~5.5V的电压范围,使系统设计更灵活、方便;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。用户设定的报警温度存储在EEPROM中,掉电后依然保存。
综上所述,DS18B20是单总线数字温度测量芯片,相较于K型热电偶具有体积小,硬件开销低,抗干扰能力强,精度高的特点,因此本设计选用温度传感器DS18B20采集实时温度。图2-8为温度检测电路,引脚1接地,引脚2接单片机的P3.7,引脚3接5V。
图2-8 温度检测电路
DS18B20返回的16位二进制数代表此刻探测的温度值,其高五位代表正负。如果高五位全部为1,则代表返回的温度值为负值。如果高五位全部为0,则代表返回的温度值为正值。后面的11位数据代表温度的绝对值,将其转换为十进制数值之后,再乘以0.0625即可获得此时的温度值。
由于要实现太阳能水温采集,因此本设计选用防水型DS18B20探头进行检测,如图2-9所示,其引脚功能与上述相同,红色线接5V,黑色线接地,黄色线为信号线。
图2-9 防水型DS18B20探头
2.3.4 LCD显示电路设计
方案一:OLED显示
OLED即有机发光二极管,同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板和使用温度范围广等优点。有4种工作模式,分别是6800、8080两种并行接口方式、4线的SPI接口方式、IIC接口方式。本质上来说OLED显示是基于每个像素点的点亮,像素点就可以等效于一个极小的LED灯,利用取模工具将我们表现的汉字、字符串、图片和动画等做成字库,进而利用字库去点亮规定好得LED灯及像素点,即可完成OLED得显示目的。
方案二:LCD1602显示
采用LCD1602液晶屏来构成显示部分,能够同时显示32个字符,是一种专门用来显示字母、数字、符号等的点阵型液晶模块。LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。该显示屏的优点是耗电量低、体积小、辐射低。
在写的方式下,OLED中每次要写8个点,在画点的时候,就必须把要设置的点所在的字节的每个位当前的状态都必须清楚,否则写入的数据就会覆盖掉之前的状态。一般采用的办法是在单片机的内部建立一个OLED的区域(共128个字节),在每次修改的时候,只是修改单片机上的该区域,在修改完了之后,一次性把该区域写入到OLED的GRAM。这个方法就是对于静态随机存取存储器很小51单片机比较麻烦了。考虑到功能的实现难易程度和性价比本设计选用方案二。
LCD1602采用标准的16脚(带背光)接口,各引脚接口说明如表2-2所示。
表2-2 LCD1602引脚说明表
编号 |
符号 |
引脚说明 |
1 |
VSS |
电源地 |
2 |
VDD |
电源正极 |
3 |
VL |
液晶显示偏压 |
4 |
RS |
数据/命令选择 |
5 |
R/W |
读/写选择 |
6 |
E |
使能信号 |
7-14 |
D0-D7 |
数据 |
15 |
BLA |
背光源正极 |
16 |
BLK |
背光源负极 |
结合LCD1602工作原理设计电路原理图如图2-10所示,数据口接单片机的P0口,P0口要接上拉电阻,P0口作为I/O口输出的时候时输出低电平为0,输出高电平为高组态(并非5V,相当于悬空状态)。P0口不能真正的输出高电平给所接的负载提供电流,因此必须接上拉电阻,电阻连接到VCC,由电源通过这个上拉电阻给负载提供电流。由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,本设计中P0口用于数据传输,必需加上拉电阻的。示屏上显示有当前的水温、水位、时间以及设置上水的时间,默认上水时间为00:00。
图2-10 LCD1602电路原理图
2.3.5 时钟模块电路设计
本设计选择常用的DS1302作为时钟模块的芯片,DS1302可慢速充电实时时钟芯片包含实时时钟/日历和31字节的非易失性静态RAM,它经过一个简单的串行接口与微处理器通信。实时时钟/日历可对秒、分、时、日、周、月和年进行计数,对于小于31天的月,月末的日期自动进行调整,还具有闰年校正的功能。时钟可以采用24小时格式或带AM(上午)/PM(下午)的12小时格式。31字节的RAM可以用来临时保存一些重要数据。使用同步串行通信,简化了DS1302与微处理器的通信。
与时钟/RAM通信仅需3根线:(1)RST(复位),(2)I/O(数据线)和(3)SCLK(串行时钟)。数据可以以每次一个字节的单字节形式或多达31字节的多字节形式传输。DS1302能在非常低的功耗下工作,消耗小于1µW的功率便能保存数据和时钟信息。
如图2-11为时钟电路原理图,其晶振频率为32768Hz,Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电。在实物连接时需要电池供电,否则断电后晶振无法继续工作,时间就无法同步。
图2-11 时钟电路原理图
2.3.6 继电器驱动电路设计
本设计中有两个继电器驱动电路,分别控制上水和加热。继电器是由铁芯外绕线圈,由一块衔铁和触点等组成的通过电磁控制的开关。当在线圈两端添加固定电压时。线圈中通过电流,根据法拉第电磁效应,线圈产生的电流使得铁芯附加磁力,衔铁被吸引。从而触点结合。当断电后,线圈电流消失,铁芯失去磁力,衔铁失去铁芯的磁力后恢复力使得衔铁脱离触点。通过电流的控制使铁芯上磁与失磁达到了通路与断路。常开触点为当线圈未通过电流时触点未接触。常闭触点是电流接通状态下的静触点。继电器是通过小电流控制大电流,小电流起控制作用,大电流是为工作电路提供的。
图2-12、2-13分别为上水继电器电路和加热继电器电路工作中的状态。该模块主要由PNP型三极管和继电器组成,灯D2亮且电机转动代表上水,灯D1亮代表加热。当三极管基极为低电平(蓝点代表此处低电平)时三极管导通,继电器控制口通电后常开口闭合,起到电路转换的作用。LED的工作电压为3V,而电路的工作的电压为5V,所以串连一个500Ω分压电阻。
图2-12 上水控制电路 图2-13 加热控制电路
在实物搭建中使用了两路SRD-05VDC-SL-C继电器,如图2-14所示。DC+和DC-分别于5V和地相接,IN1和IN2代表两路的控制口与P1.5和P2.1相接,NO为常开口,NC为常闭口,COM为公共端。
图2-14 SRD-05VDC-SL-C继电器
2.3.7 键盘输入模块设计
在本设计中共使用了五个按钮,如图2-15所示,SET按键进入设置上水时间,重复按下SET可以实现时、分转换;DAA和SUB分别是时间加和时间减;OK按键是设置结束,退出设置;考虑到阴雨天气水无法升温,因此加入HATE按键,按一下加热,再按一下停止加热。
考虑太阳能实际使用情况,按键采用独立式按键,是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。按键一端接地,一端接单片机接口,工作过程中单片机逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,再转向该键的功能处理程序。在实物搭建中使用开发板上四个独立按键外加面包板上一个按键组成键盘输入模块。
图2-15 键盘模块设计
2.4 系统总体电路
整个系统完整电路图如图2-16所示。
图2-16 系统总体电路图文章来源:https://www.toymoban.com/news/detail-797466.html
格式和篇幅限制,以下内容无法详细展示!!!
太阳能热水器控制系统文章来源地址https://www.toymoban.com/news/detail-797466.html
3. 系统软件设计
3.1 软件设计思路
3.2 超声波子函数设计
3.3 键盘输入模块子函数设计
3.4 LCD1602子函数设计
4 系统调试
4.1 仿真调试
4.2 实物调试
5 总结
5.1 本系统的优缺点
5.2 心得体会
到了这里,关于基于单片机的太阳能热水器控制系统设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!