太阳能热水器系统设计

目录

一、方案流程及技术规格书设计

二、系统硬件电路设计

三、软件编写及调试

四、系统调试测试与分析

前言

        电能是社会发展和经济建设的重要保障,它和高科技的紧密结合创造了丰富多彩的人类生活,同时电能的广泛应用也导致全球范围内的电力供应不足现象频繁出现。从世界范围内来看,火力发电是目前发电的最主要形式,但是由于石油、天然气、煤炭等化石燃料的大量燃烧,不仅带来了能源枯竭问题,也使环境污染,尤其是大气污染问题日益严重。从2013年年初开始,PM2.5这个词汇不断被人们所关注,恶劣的雾霾天气已经影响到我国的绝大多数城市,而且在2014年又有加重的趋势。为了缓解经济增长、能源短缺以及环境污染之间的矛盾,我国政府相关部门出台了很多政策,比如提高能源利用率、搬迁高污染行业、完善各区域间大气污染联控机制等。但是从实施效果上来看,这些措施都是治标不治本,只有转变目前能源的使用方式,大力发展和普及太阳能、风能等清洁能源,彻底改变以化石能源为主的能源结构,才能从根源上缓解能源短缺和环境污染问题,进而消除电力供应不足和大气雾霾等现象

       光伏装机容量的迅猛发展离不开光伏发电技术的发展。现在国际上对光伏发电技术的研究侧重于高效稳定且成本低廉的光伏直流变换器、光伏并网逆变器以及分布式光伏发电应用技术等方面。依托于光伏屋顶计划和国家法规的支持,许多欧美发达国家相继成功研发了针对不同场合的光伏发电装置。与世界光伏产业的蓬勃发展相比,我国的光伏产业才起步不久,而且相关政策的不健全使得我国的光伏发电工程存在应用面窄、技术不规范和闲置率高等问题。

       离网光伏发电系统对家庭用户和远离公共电网的无电区以及一些特殊场所有极其特殊的意义,本文将要研究的离网型光伏发电装置首先可以为不在电网供电范围内的居民解决用电问题,从而改善他们的生活条件、提高生活品质。其次,有电网覆盖的区域也可以采用此系统来缓解用电高峰时的电网压力,做到绿色能源的良好利用。在产品创新方面,本论文将蓄电池充电技术与正弦波逆变功能相结合,并引入能量管理策略设计了离网型光伏发电系统,目前市场上同类产品较少,有一定的市场潜力

       随着科学技术的快速发展,人们对生活品质的要求也不断提高,开始追求更好更方便的生活方式。因此,智能家居系统应运而生。太阳能热水器自动控制系统(The Automatic Controller of the Solar Water Heaters),是以智能家居系统为平台,对太阳能热水器自动控制。提升热水器的智能、安全、便利、舒适。

       太阳内部高温核聚变反应所释放的辐射能。太阳向宇宙空间发射的辐射功率位3。8×10^23kW的辐射值,其中20亿分之一到达地球大气层。到达地球大气层的太阳能,30%被大气层反射,23%被大气层吸收,其余的到达地球表面,其功率为8×10^13kW。20世纪以来,随着社会经济的发展和人民生活水平的提高,对能源的需求量不断增长。化石能源资源的有限性,以及他们在燃烧过程中对全球气候和环境所产生的影响日益为人们所关注。从资源、 环境、 社会发展的需求看,开发和利用新能源和可再生能源是必然的趋势。在新能源和可再生能源家族中,太阳能成为最引人注目,开展研究工作最多,应用最广的成员。 一般认为太阳能是源自氦核的聚合反应。 太阳幅射能穿越大气层,因受到吸收、散射及反射的作用,故能够直接到达地表的太阳幅射能仅存三分之一,又其中70%是照射在海洋上,于是仅剩下约1.5×10^17千瓦.小时,数值约为美国1978年所消费能6000倍。未被吸收或散射而能够直达地表的太阳幅射能称为「直接」幅射能;而被散射的幅射能,则称为「漫射」(diffuse)幅射能,地表上各点的总太阳幅射能即为直接和漫射幅射能二者的总和。

       传统的太阳能热水器智能控制系统一般采用集中控制器为中心,没有界面按键操作的方式来控制。这样的产品智能化不高,日后会逐渐被智能化设备所取代。太阳能利用的基本方式可分为光—热利用、光—电利用、光—化学利用、光—生物利用四类。在四类太阳能利用方式中,光—热转换的技术最成熟,产品也最多,成本相对较低。

软件工具准备

软件:

电路设计:protel99 se(up主使用版本) 或者其他版本,或者其他电路设计软件;

单片机开发:Keil5;

调试测试:串口调试助手,逻辑分析仪等;

工具:

电路焊接:电烙铁,SMT(有条件的);

调试:

万用表、示波器(基础入门即可,可以白嫖学校或者公司)USB转串口工具、仿真器;

一、方案流程及技术规格书设计

方案流程设计

技术规格书设计

  1. 开机状态,显示“Temp  Level  Light”

25℃   50%   75%

  1. 关机状态,显示“OFF”
  2. 设置温度状态,显示“Setup” 20℃
  3. 按键排列:上,下,设置,开关
  4. 按开关键,开启,关闭。
  5. 按设置键,进入设置温度,设置温度值闪烁显示,按上下键修改,范围(20-70)。按设置键保存并退出。

系统硬件电路设计

       本设计将通过单片机的控制,加上水位传感器、DS18B20数字温度传感器、光敏电阻、液晶显示、模数转换等模块,实现对太阳能热水器温度、水位、光照强度的检测,并且能够向指定的手机号码发送实时温度短信。

2.1 单片机

2.1.1 单片机简述

        单片机是将中央处理器(CPU)存储器、输入/输出端口(I/O)等主要计算机功能部件集成在一块集成电路芯片上,具备计算机的基本特征,也被称为单芯片微型计算机(Single chip microcomputer)。后来随着单片机技术在工控领域的广泛应用,单片机一词已经无法确切表达其特征了。目前,国际上统一采用MCU(Micro controller unit)的叫法。单片机系统是根据嵌入对象对单片机的要求,在基本功能的基础上扩展中断、定时/计数器、通信接口、时钟振荡系统等功能模块,使其能正常运行兵能满足具体嵌入式应用的一个较为完善的计算机系统。单片机应用系统是满足嵌入式对象要求的全部电路系统和软件系统。硬件上在单片机的基础上配置了面向对象的接口电路,软件上在芯片内部程序存储其中烧录了相应的控制指令或操作系统。单片机正向着大容量化、高性能化、多功能化和低功耗化等几个方面发展。由于单片机具有体积小、功能强、可靠性强、灵活方便等许多优点,因此,在我们生活、工业军事等多个领域,单片机都得到了广泛的应用。

2.1.2 单片机发展历程

单片机的发展历程可分为如下5个阶段:

1.单片机初始阶段

        单片机多以4位机为主,功能简单。如1974年美国(Fair_child)公司生产的第一台单片机F8,采用双片形式,功能简单。

2.单片机探索阶段

        单片机采用单芯片的形式,开始发展8位机。如1976年Intel公司生产的MCS-48系列单片机,这是第一台完全的8位单片机。它的推出是在工业领域的探索,此后,各种8位机应运而生。

3.单片机的完善阶段

提高了电路的集成度,增加8位单片机功能。如Intel公司推出的MCS-51。

4.微控制器的形成阶段

        单片机要有许多面向测控对象的接口电路。如ADC、DAC高速I/O接口、脉宽调制(PWM)、看门狗定时器、技术捕捉与比较等。这些为满足测控要求的外围电路大多数已经超过了一半计算机体系结构的范畴。为了满足测控系统的嵌入测控系统的嵌入式应用要求,这一阶段单片机主要技术发展方向是满足测控要求的外围电路的增强,从而形成了不同于早期单片机特点的微控制器(MCU)。

5.控制器的充分发展阶段

        其显著特点是技术创新,以满足不同用户的不同需求。从面向最底层的电子技术应用到复杂的工控领域。专用型单片机也得到较大发展,早期单片机以通用为主,随着市场的扩大,单片机的设计生产周期缩短、成本下降,推动了专用单片机发展。单片机性能、成本、开发环境、体系结构、供应状态等都有了长足的进步,使用户进入了一个可以广泛选择的时代。

        MC96F6432 具备片内 32k 字节 ISP 类型的可读可写 flash 存储,IRAM 是 256 bytes 包括堆栈区. XRAM 是 768字节包括 27 个字节 LCD 显示 RAM。

主要特性: 

1.  8 Bit CISC 内核 (8051 兼容),指令代码完全兼容传统8051.

2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机) 

3. 工作频率范围:0~38MHz,相当于普通8051的0~80MHz.

4. 用户应用程序空间为32K字节

5. 片上集成256+768字节RAM 

6. 一般I/O口(9个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。 

7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成

8. 具有EEPROM功能

9. 具有看门狗功能 

10. 共5个16位定时器/计数器。即定时器T0、T1、T2 、T3、T4.

11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒 

12. 通用异步串行口(UART),还可用定时器软件实现多个UART 

13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)

14. PDIP封装

MC96F6432端口功能介绍:

         P0 端口说明:P0 是 8-bit I/O 口。 P0 控制寄存器由 P0 数据寄存器 (P0),P0 方向寄存器 (P0IO), 防抖使能寄存器(P0DB), P0 上拉电阻选择寄存器 (P0PU), 和 P0 漏极开路寄存器(P0OD)组成。具体请参考端口功能选择寄存器。

        P1端口说明:P1 是 8-bit I/O 口. P1 控制寄存器由 P1 数据寄存器 (P1), P1 方向寄存器 (P1IO), 消抖使能寄存器 (P15DB), P1上拉电阻选择寄存器 (P1PU), 和 P1 漏极开路 (P1OD) . 具体请参考端口功能寄存器。

        P2端口说明:P2 是 8-bit I/O 口。P2 控制寄存器由 P2 数据寄存器 (P2),P2 方向寄存器(P2IO), P2 上拉电阻选择寄存器(P2PU)和 P2 漏极开路选择寄存器 (P2OD)。 具体请参考端口功能寄存器。

         P3 端口说明:P3 是 8-bit I/O 口。P3 控制寄存器由 P3 数据寄存器 (P3), P3 方向寄存器(P3IO), P3 上拉电阻选择寄存器(P3PU)组成。具体请参考端口功能寄存器。

         P4 端口说明:P4 是 8-bit I/O 口。 P4 控制寄存器由 P4 数据寄存器 (P4),P4 方向寄存器(P4IO), P4 上拉电阻选择寄存器(P4PU)和 P4 漏极开路选择寄存器 (P4OD)。 具体请参考端口功能寄存器。

         P5 端口说明:P5 是 6-bit I/O 口. P5 控制寄存器由 P3 数据寄存器 (P5),P3 方向寄存器(P5IO), P5 上拉电阻选择寄存器(P5PU)和 P5 漏极开路选择寄存器 (P5OD)。 具体请参考端口功能寄存器。

2.2 水位传感器

       水位传感器是指能将被测点水位参量实时地转变为相应电量信号的仪器。其工作原理是:容器内的水位传感器,将感受到的水位信号传送到控制器,控制器内的计算机将实测的水位信号与设定信号进行比较,得出偏差,然后根据偏差的性质,向给水电动阀发出“开”和“关”的指令,保证容器达到设定水位。进水程序完成后,温控部份的计算机向供给热媒的电动阀发出“开”的指令,于是系统开始对容器内的水进行加热。到设定温度时。控制器才发出关阀的命令、切断热源,系统进入保温状态。程序编制过程中,确保系统在没有达到安全水位的情况下,控制热源的电动调节阀不开阀,从而避免了热量的损失与事故的发生。

 压力水位传感器

 原理:测量水压,通过压强公式就算水位高度
 P :变送器迎液面所受压强
 ρ:被测液体密度
 g :当地重力加速度
 Po :液面上大气压
 H :变送器投入液体的深度

2.3  A/D转换芯片

        本设计中使用的A/D转换芯片是ADC0832。它是由美国国家半导体公司生产的8位分辨率,双通道A/D转换芯片,分辨率达256级。其内部电源输入与参考电压复用,使输入电压范围在0~5V之间。芯片的转换时间为32µs,双数据输出可以作为数据校验,以减小误差,稳定性强而且转换迅速。

引脚

功能

1(CS(——))

片选使能引脚,低电平有效。

2(CH0)

模拟通道0,或作为IN+/-使用

3(CH1)

模拟通道1,或作为IN+/-使用

4(GND)

接地

5(DI)

数据信号输入,选择通道控制

6(DO)

数据信号输出,转换数据输出

7(CLK)

时钟输入

8(VCC/REF)

电源输入及参考电压输入

2.4 通讯模块

       通信模块采用基于GSM数字移动通信系统的通信模块。GSM是Global System For Mobile Communications的缩写,是由欧洲电信标准组织ETSI制订的一个数字移动通信标准,GSM是全球移动通信系统的简称。它的空中接口采用时分多址技术。自90年代中期投入商用以来,被全球超过100个国家采用。GSM标准的设备占据当前全球蜂窝移动通信设备市场80%以上。

       GSM 是当前应用较为广泛的移动电话标准。全球200多个国家和地区超过10亿人正在使用GSM电话。所有用户可以在签署了"漫游协定"移动电话运营商之间自由漫游。GSM 较之它以前的标准最大的不同是它的信令和语音信道都是数字式的,因此GSM被看作是第二代移动电话系统。 这说明数字通讯从很早就已经构建到系统中。GSM是一个当前由3GPP开发的开放标准。从用户观点出发,GSM的主要优势在于用户可以从更高的数字语音质量和低费用的短信之间作出选择。网络运营商的优势是他们可以根据不同的客户定制他们的设备配置,因为GSM作为开放标准提供了更容易的互操作性。这样,标准就允许网络运营商提供漫游服务,用户就可以在全球使用他们的移动电话了。

       GSM移动通信系统的主要技术特点是:由于采用了高效调制器、通信编码、交织、均衡等技术,使系统的频谱效率高;具有灵活和方便的组网结构,频率重复利用率高,容量大;过鉴权、加密和临时移动用户识别码,可以达到安全的目的;在SIM卡的基础上,实现自动漫游功能。

       计采用GA6-B通信模块,模块已经集成了射频天线、SIM卡,GSM模块和单片机接口只是串口。由于GSM模块的IO口是3.3V,不能直接和单片机5V的IO口连接,需要电平转换电路。TXD2、RXD2连接单片机串口,U_RXD、U_TXD连接模块串口。

2.5 复位电路

       复位是单片机的初始化操作,只需要给RESET引脚上加上两个机器周期以上的低电平信号就可以实现。除了进入系统的初始化外,当由于程序运行出错或操作错误使系统处于死锁状态时,也需要进行复位重启。因而复位是一个很重要的操作方式。单片机一般不能自行复位(在热启动时本身带有看门狗复位电路的单片机除外),必须配合相应的外部电路才能实现。单片机的复位都是依靠外部电路来实现的,复位分为上电自动复位和手动按键复位。

       手动复位需要人为地在RST加低高电平,一般在VCC和RST间加一个按键,当按下按键时,即使动作很快,也会使接触保持数十微秒。对于NMOS型单片机,在RST接一个电阻至VCC和一个电容至地,就可以实现自动复位,如图上电复位电路所示。

2.6 AD转换电路

        模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。A/D转换的作用是将时间连续、幅值也连续的模拟量转换为时间离散、幅值也离散的数字信号,因此,A/D转换一般要经过取样、保持、量化及编码4个过程。A/D转换器的主要技术参数:

1.转换精度

   (1)分辨率

        A/D转换器的分辨率以输出二进制数的位数来表示。它说明A/D转换器对输入信号的分辨能力。从理论上讲,n位输出的A/D转换器能区分2个不同等级的输入模拟电压,能区分输入电压的最小值为满量程输入的1/2n。在最大输入电压一定时,输出位数愈多,分辨率愈高。

   (2)转换误差

        转换误差通常是以输出误差的最大值形式给出。它表示A/D转换器实际输出的数字量和理论上的输出数字量之间的差别。常用最低有效位的倍数表示。

2.转换时间

        转换时间是指A/D转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。A/D转换器的转换时间与转换电路的类型有关。不同类型的转换器转换速度相差甚远。其中并行比较A/D转换器的转换速度最高,8位二进制输出的单片集成A/D转换器转换时间可达到50ns以内,逐次比较型A/D转换器次之,它们多数转换时间在10~50s以内,间接A/D转换器的速度最慢,如双积分A/D转换器的转换时间大都在几十毫秒至几百毫秒之间。在实际应用中,应从系统数据总的位数、精度要求、输入模拟信号的范围以及输入信号极性等方面综合考虑A/D转换器的选用。

       本设计的A/D转换电路如图所示。P1.0输出控制芯片工作的时钟信号,DI和DO端并联接到P1.1端,作为数模转换芯片与单片机数据通信线,模数转换模块的使能端连接到单片机的P1.2端,控制模数转换模块的工作,低电平有效。最后还需要将芯片的电源和地线分别连接完毕。

2.7 报警电路

2.7.1 蜂鸣器报警电路

       蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

  1. 压电式蜂鸣器

       压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后,多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。

2.电磁式蜂鸣器

        电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

       压电式蜂鸣器是通过压电效应来带动金属片振动,电磁式蜂鸣器利用电磁原理,通电时振动膜被吸引,断电后弹回,因此压电式蜂鸣器需要方波驱动,而电磁式蜂鸣器用1/2方波驱动。压电式蜂鸣器的驱动需要比较高的电压,一般选用9V以上,这样才能产生足够大的音压,而电磁式蜂鸣器只需要1.5V就可以产生85dB的音压。综合电路的电源因素,本设计选用的是电磁式蜂鸣器,具体蜂鸣电路如图3.3所示。由于单片机端口输出电流较小,不能驱动蜂鸣器,所以需要一个放大电路来驱动蜂鸣器。图中三极管的基极通过限流电阻与单片机P1.4相连,蜂鸣器的一端与电源相连,另一端与三极管发射极相连。当P1.4输出高电平时,三极管Q1截止,蜂鸣器不发声;当P1,4输出低电平时,三极管导通,蜂鸣器报警。在编程时,可以通过控制P1.4输出电平来控制蜂鸣器的工作状态。

2.7.2 报警电路

    LED指示报警电路连接单片机,正常工作时,LED输出高电平,点亮LED。当报警时,输出1HZ方波,使单片机闪烁显示。电路图报警电路

2.8 PCBA版图

三、软件编写及调试

系统程序代码:

/*---------------------------------------------------------------------------------

 太阳能热水器

 软件版本:V1.1

                     日期:2022-04-01

 版权所有:Main Wu                                         

  --------------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------------

  ****软件功能说明**** 

1、加热控制:50度

   MCU IC : MC96F6432  Package type : 44LQFP  

  --------------------------------------------------------------------------------*/

#include "app.h"

/**********************************************************

 函数功能:主程序

 入口参数:无

 出口参数:无

***********************************************************/

int main()

{  

cli();          //disable INT. during peripheral setting

    clock_init(); //时钟8M

BIT_init(); //8位基本间隔定时器

    WT_init(); //WT

    LCD_init();

    Timer0_init(); //定时器0

    ADC_init(); //AD转换

    WDT_init(); //看门狗   

    sei();          //enable INT.

    WDT_clear();

while(1)

    {        

  WDT_clear();            

}

}

LCD液晶显示:

//LCD Display

#include "app.h"

#define LCD_DB P2

sbit LCD_RS=P3^2;

sbit LCD_RW=P3^3;

sbit LCD_E=P3^4;

//********延时函数********

void Delay_Time(int _Time)

{

    while(_Time--)

    {

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

}

//*********写指令*********

void LCD_Write_Command(unsigned char _Com)

{

LCD_DB = _Com;

LCD_RS = 0;//指令

LCD_RW = 0;//写入

LCD_E = 1;//允许

LCD_E = 0;

Delay_Time(1);

}

//********初始化*********  

void LCD_init(void)

{

LCD_Write_Command(0x38); //设置8位格式,2行,5x7

LCD_Write_Command(0x0c); //整体显示,关光标,不闪烁

LCD_Write_Command(0x06); //设定输入方式,增量不移位

LCD_Write_Command(0x01); //清除屏幕显示

Delay_Time(100);

}

   

//*********写数据*********

void LCD_Write_Data(unsigned char _Data)

{

LCD_DB= _Data;

LCD_RS = 1; //数据

LCD_RW = 0; //写入

LCD_E = 1; //允许

LCD_E = 0;

Delay_Time(1);

}

//*******显示一个字符********

void LCD_Display_Num(unsigned char _X,unsigned char _Y,unsigned char _Num)

{

unsigned char Address;

if(_Y == 1)

{

     Address = 0x80 + _X;

}

else

{

     Address= 0xc0 + _X;

}

LCD_Write_Command(Address);

LCD_Write_Data(_Num);

}

猜你喜欢

转载自blog.csdn.net/ccwaff/article/details/127553504