




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:太阳能电池特性参数在线检测系统研究〔软件局部〕太阳能电池特性参数在线检测系统研究〔软件局部〕摘要随着经济的开展和科学技术的不断进步,世界正面临着资源短缺与环境污染两大问题。太阳能光伏发电技术是解决这两个问题的有效方法。在实际的使用和研究的过程中,我们需要太阳能电池检测系统对太阳能进行参数数据采集,从而分析测评太阳能电池的性能。基于目前太阳能电池研究的实际需求,根据太阳能电池检测原理和电路的相关知识,设计了基于单片机的太阳能电池特性参数在线检测系统。硬件电路主要包括温度信号采集单元、光照强度采集单元、电流电压采集单元、模数转换单元和串口通信单元等结构。本文利用单片机C语言编写了与硬件电路匹配的软件程序,控制硬件电路完成数据采集、模数转换的任务,同时再将数据采集步骤中所采集的数据通过串口与PC进行数据传输。关键词:太阳能电池;单片机;数据采集;串口通信;C语言Theresearchofon-linedetectionsystemfortheparametersofsolarcell(partialofthesoftware)ABSTRACTWiththedevelopmentofeconomyandtheprogressofscienceandtechnology,ourworldisexposedenergyshortageandenvironmentpollutionproblems;solarphotovoltaictechnologyisaneffectivemethodtosolvethesetwoproblems.Intheprocessofpracticaluseandresearch,weneedtousesolarselltestsystemtotestsolarcell,soastoacquireneededdata,andtomakeanalysisandjudgmenttosolarcells.Basedonthepracticesofthesolarcellresearchneeds,andaccordingtothetestprincipleofthesolarcellandrelatedknowledgeaboutelectroniccircuit,AsolarcelltestsystembasedonMCUhasbeendesigned.Thishardwarecircuitincludestemperaturedataacquisitionunit,lightintensitysignalacquisition,currentandvoltagesignalacquisitionunit,analoguetodigitalconversionunitandserialcommunicationunit,andsoon.WeusedMCUCprogramminglanguagetocompilesoftwareprogramcoordinatedwiththedataacquisitionhardwarecircuit,controllinghardwarecircuittocompletethetaskofdataacquisition,andtheserialcommunicatingbetweendataacquisitionsectionandpersonalcomputer.Keywords:solarcell;MCU;dataacquisition;serialcommunication;Cprogramminglanguage目录TOC\o"1-3"\h\u52591前言 1275731.1课题的来源及意义 1215751.2国内外开展现状 1269011.3课题研究的内容 2135792太阳能电池数据采集原理 341492.1太阳能电池的工作原理 3263762.2太阳能电池的等效电路 4310542.3太阳能电池的伏安特性曲线 5202702.4太阳能电池的测试方法 6298633太阳能电池特性参数在线检测系统硬件电路 7264593.1数据采集局部总体结构 773163.2电流、电压信号采集单元7288873.3光强信号采集单元811413.4温度信号采集单元950753.5串口通信单元9216994太阳能电池特性参数在线检测系统软件设计 1171134.1数据采集局部软件程序总体框架 11257024.2A/D转换子程序设计 12163654.3温度信号采集子程序设计 1386894.4步进电机子程序设计 1582054.4.1步进电机工作原理 15295524.4.2步进电机子程序设计 1685974.5串口通信子程序 18107304.5.1单片机串口通信简介 18300994.5.2串口通信子程序设计 18199185系统整体调试 2061235.1硬件调试 20296615.2软件测试 20228125.3上位机软件测试 201618总结2320294参考文献 243156致谢 2512374附录 261前言1.1课题的来源及意义二十一世纪,新能源和可再生能源的开发已经成为影响世界经济开展的重要的技术领域。其中,太阳能能否在未来被充分的开发和利用已经成为全世界必须面临的挑战,其中太阳能发电技术,更是受到人们的普遍关注。现在,太阳能发电技术已经被大规模应用于各个行业中,这是因为太阳能发电具有许多其他能源无法具备的优点,其中包括没有噪声,没有污染,维护方便,故障率低,规模可大可小,不需要远程传输,可方便地与各种器械设施或建筑相结合等。随着全世界经济的飞速开展,能源危机很有可能到来,这样,太阳能在将来必然凭借其无污染,可再生的特点取代其他不可再生能源,也必将成为主要研究目标之一。由于入射光的波长和能量的不同,以及太阳能电池所接的负载电阻不同,太阳能电池会产生不同的输出特性。这样通过对不同型号、材料的电池的电压、电流、最大输出功率、填充因子、转换效率的检测,对太阳能电池的性能进行评估,有助于生产出高效率的太阳能电池。本设计就是利用单片机控制完成太阳能电池的电压、电流、光照强度、电池温度测数据的采集。1.2国内外开展现状世界各国特别是兴旺国家把太阳能发电称为朝阳产业,把这一产业当作实现本国经济开展的重要举措,制定了一系列促进和影响本国太阳能发电产业开展的政策,对世界太阳能发电产业的开展起到了积极的推动作用。全世界太阳能发电市场正在迅速扩张,光伏发电正在成为全球的一大热点。我国对光伏电池的研究始于20世纪60年代年。我国于1971年发射的东方红二号卫星上首次成功地利用了太阳能电池,在80年代以前我国的光伏工业尚处于雏形。80年代以后,光伏工业和光伏市场开始得到国家的支持,使其在我国得到了一定的开展,在越来越多的领域得到应用。尤其是政府2002年启动的“西部省区无电乡通电方案〞大大刺激了我国光伏发电产业的开展,太阳能电池应用也取得了一些进展。此外,我国屡次实施了许多重大光伏工程,这些工程对我国光伏市场和光伏产业的开展都起到了积极地推动作用。在2023年以前我国太阳能电池主要应用于独立光伏发电系统,2023年到2023年间,我国光伏发电市场将由独立发电系统转向并网发电系统,即多个光伏发电系统相连协调工作。随着我国综合国力的增强,和太阳能产业技术的日渐成熟,我国将会大规模建设大型太阳能热电站和太阳能光电站,届时太阳能光伏发电将会成为我国的主要能源来源之一。随着太阳能产业的不断壮大,为了确保生产的太阳能电池符合要求,因此,太阳能电池检测设备也在光伏发电产业中起到必不可少的作用。1.3课题研究的内容本文设计了太阳能电池特性参数在线检测系统的数据采集局部,可以有效地完成对太阳能电池在外接负载从零变化到无穷大的过程中对输出电流、输出电压、光照强度和温度等参数的数据采集。数据采集能够在很短的时间内完成,从而有效地防止了温度和光强对检测结果的影响。能够利用单片机控制实现和上位机的串口通信,上位机完成实时数据分析处理。系统包括硬件局部、软件局部和上位机监控程序。系统完成后,可通过计算机串口传输采集到的太阳能电池特性参数,从而在上位机的监控界面中,直观地观察太阳能电池的伏安特性曲线和相应的特性参数,继而分析得出被测太阳能电池的性能。2太阳能电池数据采集原理2.1太阳能电池的工作原理太阳电池是一种对光有响应并能将光能转换成电力的器件。制作太阳能电池的原材料有很多种,其中包括单晶硅,多晶硅,砷化镓,硒铟铜等。但由于目前市场上最主流的太阳能电池就是以硅为材料的,因此本文主要介绍硅材料太阳能电池。下面主要介绍单晶硅太阳能电池的工作原理。单晶硅太阳能电池片的结构主要包括:正面梳状电极、减反射膜、P型层、PN结、N型层、反面电极等[1]。其结构如图2-1所示。图2-1单晶硅太阳能电池结构图太阳能电池的工作原理是:当太阳光入射光子直接照射到太阳电池上并被吸收,且能量足够大时,电子将被激发进入导带,形成自由电子,同时在价带中留下带正电的自由空穴,即一个能量足够的入射光子将产生两个带相反电荷的粒子〔电子一空穴对〕。被激发的电子,在结区内建电厂的作用下,流向的N区;类似地,空穴在内建电场的作用下,浮向P区。结果是,在P区边界积累了多余的空穴,在N区的边界积累了多余的电子,于是,产生了一个与平衡PN结内建电场方向相反的光生电动势。假设入射光子打在PN结过渡区之外的P侧或N侧,距离过渡区为一个扩散长度时,P侧被激发的电子和N侧被激发的空穴仍有1/2的概率进入结区,然后在结区内建电场的作用下发生与上述同样的运动。如果PN结处于开路状态,光生载流子只能积累于PN结两端,产生光电动势。此时,在PN结两端测得电位差即太阳能电池的开路电压。如果把PN结从外部短路,那么N端积累的光生载流子-电子将经过外电路流回P端,在P端与空穴复合,此时,流过外电路的电流就是太阳能电池的短路电流[2]。其工作原理如图2-2所示。光电效应产生电压太阳能电池板阳光阳光光电效应产生电压太阳能电池板阳光阳光图2-2太阳能电池工作原理图2.2太阳能电池的等效电路在有光照且正负极之间有负载时,是太阳能电池正常工作情况。理想的太阳能电池正常工作时,可以用一个电流为IL的恒流电源与一个正向二极管〔PN结〕并联的等效电路来表示,理想太阳能电池等效电路如图2-3所示。在有光照时,同时存在着光照引起的短路电流IL和由PN结两端的负载电压引起的暗流ID,他们的流动方向恰恰相反。这个等效电路的物理意义是:太阳能电池光照后产生一定的光电流IL,其中一局部用来抵消结电流ID,另一局部即为供应负载的电流IR。其端电压V、结电流I以及工作电流I的大小都与负载电阻R有关,但负载电阻并不是唯一的决定因素。如上所述,I的大小为:〔2-1〕根据扩散理论,二极管结电流Ij可以表示为:〔2-2〕将式〔2-2〕代入〔2-1〕,得:〔2-3〕实际的太阳能电池,由于前面和反面的电极和接触,以及材料本身具有一定的电阻率,基区和顶层都不可防止的要引入附加串联RS和旁路电阻RSH。电阻流经负载时,经过它们时,必然引起损耗。在等效电路中,可将它们的总效果用一个串联电阻RS来表示。由于电池边沿的漏电和制作金属化电极时,在电池外表的微裂纹、划痕等处形成的金属桥漏电等,使一局部本应通过负载的电流短路,这种作用的大小可用一并联电阻RSH来等效[3]。那么实际的光电池的等效电路如图2-4所示。PN结光生伏特效应最主要的应用是作为太阳能电池。串联电阻增大导致太阳能电池的短路电流和填充因子减低,旁路电阻减小会使填充因子和开路电压降低,但对电流电流没有影响。考虑到串联电阻RS和旁路电阻RSH的实际伏安特性公式为(其中IL为PN结电流,q=1.6×1019C是电子电荷,k=1.38×1023J/k定义为波尔兹曼常数,T是据对温度):〔2-4〕图2-3理想太阳能电池的等效电路图2-4实际太阳能电池的等效电路2.3太阳能电池的伏安特性曲线在一定的光强和温度下,太阳能电池的伏安特性曲线如图2-5所示。图2-5太阳能电池的伏安特性曲线图2-4中Voc是太阳能电池的开路电压,ISH是太阳能电池的短路电流,Pm是太阳能电池的最大输出功率,Vm是最大功率点电压,Im是最大功率点电流。由图可知,太阳能电池的伏安特性曲线是非线性的,该曲线受外界光照的强度和太阳能电池自身温度,太阳能电池自身的工艺参数等因素的影响。2.4太阳能电池的测试方法太阳能电池的伏安特性受光强和气温的影响,因此选择在太阳辐射光谱为AMl.5,日照强度为1000W/m2。太阳能电池温度为25℃时为地面测试太阳能电池性能的标准测试条件下进行[4]。太阳能电池分析评判的依据是太阳能电池的伏安特性曲线及性能参数,就是要测出太阳能电池在标准条件下,太阳能电池所带负载从零变化到无穷大时太阳能电池的输出电压和输出电流的值,根据输出电压和输出电流的值,得出太阳能电池的伏安特性曲线,并根据测得的数据计算出太阳能电池的性能参数,根据得出的伏安特性曲线和性能参数来评判太阳能电池的性能。为了尽可能降低光强和温度变化对测试带来的影响,太阳能电池的测试关键是在极短时间内完成测试。3太阳能电池特性参数在线检测系统硬件电路3.1数据采集局部总体结构根据太阳能电池的测试原理,本文数据采集系统的总体结构如图3-1所示。图3-1数据采集系统总体结构图太阳能测试系统中,数据采集局部主要是对开路电压、短路电流、光照强度和温度的信号采集。太阳能电池外界负载从零变化到大无穷大的过程中,负载电阻为零时的电流就是短路电流,负载电流为无穷大时的电压就是开路电压,其中电压电流的测试是根据负载电阻的从小到大的变化而得到的,负载电阻的变化是与多圈电位器连接的步进电机单元控制得到的;根据太阳能电池的短路电流与光照强度成正比例的原理,间接测得光照强度值;测量温度信号可采用数字温度传感器DS18B20,直接采集二进制数据的温度信号。其中开路电压、短路电流、光照强度的数据要经过A/D转换模块进行模拟量到数字量的转换,由于本文采用PIC系列的PIC16F877单片机作为控制核心,而PIC16F877内部包含A/D转换模块,因此,电路不需要外加A/D转换电路。将采集到的信号通过串口发送给PC进行通信[5]。PC可以进行数据处理,并将处理的结果显示出来。数据采集局部的核心硬件就是单片机,单片机控制实现数据采集,模数转换和串口通信的工作。本文设计的整个系统包括PIC16F877单片机,两相混合式步进电机,数字温度传感器DS18B20,电压转换芯片MAX232和RS232串口DB9等。3.2电流、电压信号采集单元本文采用间接法测量电压电流信号,其测量电路图如图3-2所示。图3-3中,Ro为太阳能电池所接负载电阻,它采用的是多圈电位器,单片机控制步进电机的转动从而控制负载电阻的改变。Rstd是标准电阻,Vr为参考电压。开关K1、K2、K3采用继电器,由单片机控制它们的导通和切断,组成不同的电路测量所需的电压和电流图3-2电压电流测量电路在光强一定的条件下,改变负载电阻R0至某一固定值,闭合K3,K1连接到K11,K2连接到K21,此时,负载电阻R0两端电压为:〔3-1〕由〔3-1〕可得出负载电阻Ro的值〔3-2〕保持光强和负载Ro不变,将K3闭合,K1连接到K12,K2连接到K22,将太阳能电池和负载Ro组成回路,从而得到所测电压为Uc,由于已经得到Ro,此时回路中的电流为:〔3-3〕通过单片机控制步进电机,从而控制负载电阻Ro的阻值,将负载Ro值调到最小,便得到太阳能电池的短路电流Isc。将开关K3断开,K1连接到K12,K2连接到K22。此时组成的回路,便可得到太阳能电池的开路电压Voc[6]。3.3光强信号采集单元本文根据太阳能电池的短路电流与日照强度成比例关系的原理,可以间接地计算出光照强度的数值,测试原理图如3-3所示。在测量太阳光照强度时,直接采用一块面积为10的太阳能电池板,在太阳能电池正负极之间接入阻值很小的电阻,设计中取0.01kΩ。此时,可以认为太阳能电池处于短路状态,测量太阳能电池两端的电压,从而计算出此时太阳能电池的短路电流,根据太阳能电池的短路电流与光照强度成正比例关系,间接得到光照强度的数值,因为本设计采用的单片机PIC16F877自带A/D转换端口,直接连接单片机即可。电路连接图如图3-3所示。图3-3光照强度测试原理图3.4温度信号采集单元本设计中的太阳能电池温度信号采集单元采用数字温度传感器DS18B20,由于被测温度直接采用数字形式输出,因此无需外加A/D转换器进行转换。温度信号采集单元电路如图3-4所示。图3-4温度信号采集单元3.5串口通信单元本文设计的太阳能电池特性参数在线检测系统采用的是上位机-下位机的工作方式,PC作为上位机,单片机作为下位机,通过RS-232串口在PC机与单片机之间进行采集到的数据的发送,接收和指令的传输[7]。因此,本文中的串口通信指的是由单片机串口和PC机串口共同完成数据的传输,用MAX232芯片实现电平转换。其硬件电路图如3-5所示。图3-5串口通信单元
4太阳能电池特性参数在线检测系统软件设计4.1数据采集局部软件程序总体框架本文用单片机C语言编写了与数据采集局部硬件电路相配合的软件程序,其流程图如图4-1所示。图4-1数据采集系统的软件流程图根据图数据采集局部软件流程图4-1可以看出,由于单片机是数据采集系统的核心元件,启动单片机是所有步骤的第一步;然后,单片机控制完成对温度信号和光强信号的采集,采集完成之后,将已经采集到的温度信号和光强信号放到单片机的存储器中;然后,对太阳能电池负载两端的电压和流过的电流信号进行采集,采集过程中,由于开路电压与短路电流比拟特殊,与其他电流、电压采集的方法不同,因此把开路电压和短路电流与其他电压、电流的采集分别进行。采集完成之后,也将采集到的电压、电流存到单片机的存储器中,数据采集完成之后,就将上面采集到的光强、电压、电流的数据进行A/D转换,将所得到的模拟量信号转换为数字信号。这些工作都完成以后,可以进行下一步的串口信号通信。下面将对重点内容进行详细介绍。4.2A/D转换子程序设计本文中用到PIC16F877单片机内置的模数转换器,来把采集到的电流、电压信号,和以电流信号形式光强信号转换为数字量信号,从而方便实现数据传输,转换子程序程序流程图如图4-2所示。图4-2A/D转换子程序流程图在本设计中,单片机采集到的电压、电流、光强信号都是由单片PIC16F877内置的A/D转换局部完成模拟量到数字量的转换。其中电压信号可以直接转成数字量,电流和光强信号必须被转换成电压信号进而进行A/D转换。PIC16F877单片机A/D转换局部的配置过程:〔1〕选择模拟线号输入端口,用A/D控制存放器ADCON1的D3:D0位来配置端口A。〔2〕配置参考基准,有内部基准和外部基准两种。内部基准就是采用芯片的供电电压为基准;外部基准要根据实际的使用情况而定,从端口A的RA3和RA2输入。通过A/D控制存放器ADCON1的D3:D0配置。〔3〕配置转换时钟,有四中不同频率的时钟,由A/D控制存放器ADCON0的D7:D6口选择,00:FOSC/2;01:FOSC/8;10:FOSC/32;11:RC振荡器频率。〔4〕配置A/D转换允许,去除A/D启动位。由ADCON的D0设置,0:关闭A/D转换器;1:翻开A/D转换器。并且ADCON0的D2为A/D转换器的启动位和转换结束的标志位,翻开A/D转换器时必须设置启动位为0。〔5〕配置A/D转换结果存放存放器:10bits转换结果,ADRESH和ADRESL,通过软件设置左/右对齐。〔6〕设置A/D中断功能,如果不采用中断功能,可以直接设置ADIE=0,进入下一个步骤。中断功能的设置如下所示:首先去除A/D转换完成中断标志:ADIF=0;设置A/D转换中断允许位:ADIE=1;设置外部中断允许位:PIIE=1;设置全局中端允许位:GIE=1。〔7〕启动A/D转换:ADCON0<2>=1。〔8〕等待A/D转换完成,读取转换结果:当启动A/D转换后,ADCON0<2>会一直保持高电平,转换结束后,自动变为低电平。这能判断出A/D转换状态,转换结束后直接读取结果[8]。配置完成之后,那么可对A/D转换局部进行编程,A/D转换的程序简介如下所示://A/D转换初始化子程序voidadinitial(){ADCON1=0x84;//转移结果右移,即ADRESH存放器的高6位为0,且把RA0,RA11,//RA3口设置为模拟量输入方式,其他口为数字量输入口,切参考电//压为VddPIE=0x00;//去除A/D转换标志PIE2=0x00;//A/D转换中断允许ADIE=1;//外围中断允许PEIE=1;//外设中断允许}//A/D转换函数voidadc(){gq();dianya();}Voidmain(){While(1){csh();//初始化函数Wendu();//温度采集函数adc();//A/D转换函数,包括电压,电流,光强的采集bujin();//步进电机控制函数}}4.3温度信号采集子程序设计前文已经大概介绍所使用的数字温度传感DS18B20,它采用的单线总线技术,用一根线实现信号的双向传输,因此,对DS18B20进行的读写操作有严格的时序要求,DS18B20规定了严格的通信协议来保证数据传输的正确性和完整性。温度信号采集单元在读取温度之前,要先通过复位脉冲来初始化DS18B20,然后DS18B20发出应答脉冲,在单片机收到应答脉冲后才开始后续工作。程序要按照严格的时序进行DS18B20的初始化、读数据和写数据的操作,从而保证数据的完整性。在温度信号采集程序中,在温度转换期间与任何其他数据传输在总线上不能同时进行传输,另外,可以发出复位脉冲在任何时刻中断数据的传输。采集到的温度信号以16位符号扩展的二进制补码形式存储在DS18B20的2个8位RAM中[9]。本文中采用到的DS18B20功能命令有转换温度命令(44H),读暂存器命令(BEH),读ROM命令〔33H〕,跳过ROM命令〔CCH〕等。采集单元实现单次读取温度信号的流程图如图4-3所示。图4-3温度信号采集单元读取温度信号流程图在图4-3中,读取的温度信号的高位字节和低位字节都存放在DS18B20的高速暂存器中,经过两次转换和两次读取,分别读取温度值的低位字节和高位字节的方法来完成温度信号的采集。温度采集子程序简介如下://DS18B20读字节函数ucharread_byte(void){uchar1;ucharvalue=0;//读出温度for(i=8;i>0;i--)value>>=1;DQ_LOW();delayus(6);//6usDQ_HIGH();//拉至高电平delayus(4);//4usif〔DQ〕value|=0x80;delayus(63)//63us}return(value);}//启动温度转换函数voidwd(){unit1;re();PORTA=0X02//复位等待从机容许write_byte(0XCC);//忽略ROMwrite_byte(0X44);//发送温度转化命令re();//再次复位,等待从机容许write_byte(0XCC);//忽略ROM匹配write_byte(0XBE);//发送度温度命令TLV=read_byte;//读出温度低8位THV=read_byte;//读出温度高8位PORTA=0X02;//释放总线TZ=(TLV>>4)|(THV<<4)&0X3f;//温度整数局部TX=TLV<<4;//温度小数局部temp=TZ+TX//整体温度〔整数+小数〕}4.4步进电机子程序设计4.4.1步进电机工作原理步进电机就是按照一定的角度转动,本设计采用28BYJ48步进电机,每步转1.8°,转360°,需要200步才能完成。步进电机每走一步,就要加一个脉冲信号,也成为鼓励信号。无脉冲信号输入中,转子保持一定的位置,维持静止状态。假设参加适当的脉冲信号时,转子那么会以一定的步数转动。如果参加连续的脉冲信号,步进电机就连续转动,转动的角度与脉冲频率成正比,正、反转可由脉冲信号的顺序来控制。步进电机有三类:2相步进电机,4相步进电机,5相步进电机。本文选用的步进电机是4相步进电机。步进电机的鼓励方式有1相激磁,2相激磁和1-2相激磁。1相励磁法:在每一个时间点都只有一个线圈导通,其他的线圈停止工作。2相励磁法:在每一时间点会有两个线圈同时导通,特点是转矩大、震动小。每送一次励磁信号可走1.8°。1-2相励磁法:1相与2相交替导通,精确度高,运转平滑。但是没一次激磁信号只转动109°,又称为半步驱动。本次设计采用2相励磁法,每送一次励磁信号可以1.8°。调整单片机输出的步进脉冲频率的方法:〔1〕软件延时方法改变延时的时间长度就可以改变输出脉冲的频率,但这种方法使CPU长时间等待,无法进行其它工作,因此没有使用价值。在单独进行步进电机的演示时可以采用。定时器中断法在中端效劳子程序中进行脉冲操作,调整定时器的定时常熟就可以实现调速,这种方法占用CPU时间较少,是一种比拟实用的调速方法,因此,本设计采用这种方法调整单片机输出的步进脉冲频率[10]。步进电机不能直接被电源使能,必须使用步进电机驱动器控制工作。由单片机通过步进电机驱动器使步进电机按照一定的角度转动,从而控制步进电机连接的负载电阻按照一定的阻值由小自大地变化,在变化过程中进行电压和电流源的采集,就可以获得所需的电压、电流信号。本文采用ULN2003驱动器,其引脚图结构图如图4-4所示。图4-4ULN2003引脚图4.4.2步进电机子程序设计本文通过单片机控制步进电机,步进电机控制多圈电位器来实现负载电阻由小自大地变化,通过步进电机的步数可以确定采集的次数,当多圈电位器到达最大值时控制步进电机反转。其程序流程如图4-5所示。图4-5步进电机程序流程图步进电子程序简介如下所示://步进电机控制函数Constuchartable1[]="0xfe,0xfb,0xfd,0xf7";//正转Constuchartable2[]="0xf7,0xfd,0xfb,0xfe";//反转uinti=0;voidZheng(uintc)//正转{PORTC=table1[i%4];}voidFan(uintc)//反转{for(i=0;i<c;i++)PORTC=table2[i%4];{viodbujin(){uintn;if(i<n){PORTC=table1[i%4];i++;}Else{PORTC=table2[i%4];i++;}}}4.5串口通信子程序4.5.1单片机串口通信简介本文利用PIC16F877单片机实现单片机点对点通信,实现数据同步由两种但凡:异步通信,和同步通信。异步通信的发送端和接收端可以由各自的始终控制数据的发送和接收,两个时钟源彼此独立互不同步。同步通信在一个数据块的开头使用同步字符,数据传送时使用同一频率的脉冲来实现发送端与接收端的严格时间同步[11]。4.5.2串口通信子程序设计串口通信主要包括两局部:单片机发送数据和PC机接收数据,流程图如图4-6,4-7所示。图4-6单片机发送数据子程序流程图图4-7PC机接收数据子程序流程图
5系统整体调试在系统的调试中,要将软硬件结合起来,到达系统中电压、电流,温度,光强等信号的数据进行采集、传递准确检测的目的。5.1硬件调试在硬件调试的局部,根据系统原理图的设计,仔细检查设计图上是否有因连接错误的情况,检查无误后,焊接电路板,在焊接电路板时,要注意防止出现芯片管脚的虚焊与短路连接。完成焊接后,检查芯片是否正常。最后根据整个电路的工作是否正常,检查硬件是否正常运行。5.2软件测试软件测试局部要完成对电压、电流,温度,光照强度的数据采集。各个器件对采集数据的传输以及在上位机上的显示,在软件调试的过程中,将各局部工作完成采集的数据传送到PC上对其分析处理,,观察上层界面是否能够出现预期的各项数据的信息。5.3上位机软件测试翻开软件进行检测,PC显示器出现登陆界面,管理员输入正确的用户名和密码后,即可顺利登录。其软件登陆界面如图5-1所示。图5-1软件登陆界面登陆后,出现界面后,选择串口并点击开始监控按钮,那么可以对太阳能电池特性参数进行检测,如图5-2所示。点击停止接收按钮,然后再点击绘图按钮,那么得到本次检测到的太阳能伏安特性曲线〔此时的温度为25℃,光照强度800W/m2〕,其界面如图5-4所示。图5-2登陆后选择串口界面图5-3上位机监控到太阳能电池伏安特性曲线界面分几个时间点屡次进行测试,测试环境下的温度或者光强已经随时间改变,所以此时的伏安特性曲线也会改变。下面是另外两次时间点测试的伏安特性曲线。其中在温度为25℃,光强为800W/m2的测试条件下的伏安特性曲线,如图5-4所示。图5-4在温度25℃,光强为800W/m2环境下的伏安特性曲线在温度为30℃,光强为1000W/m2的测试条件下的伏安特性曲线,如图5-5所示。图5-5在温度30℃,光强为1000W/m2环境下的伏安特性曲线由图5-3,5-4,5-5可以看出太阳能的开路电压和短路电流是实时变化的。上位机监控程序接收单片机传输的实时变化的数据并在监控界面上显示出来,最后通过实时变化的数值来描绘太阳能电池的伏安特性曲线。本文设计的太阳能电池特性参数在线检测系统检测到的伏安特性曲线可以直观的从监控界面显示出来,太阳能的相关的参数也可以以数值的形式清楚的展现给测试人员。但是,由于本设计电路存在一些噪声和干扰,因此测得伏安特性曲线光滑度不够,波动较大。但总体变化趋势符合太阳能电池的固有性质。总结本设计根据目前太阳能电池的研究和生产生活实际的需求,根据太阳能电池的测试原理以及单片机原理的相关知识,设计了基于单片机的太阳能电池数据采集系统,该系统主要包括数据采集的硬件和软件两局部。在数据采集系统的硬件电路局部中,选择单片机控制步进电机转动从而带动多圈电位器来实现太阳能电池外接负载按照一定的规那么由小变大地变化,防止了电子负载的使用,尽量减小了误差。按照间接法测量到的电压、电流和光照强度,也一定程度上防止了电阻带来的误差。温度信号采用数字温度传感器DS18B20直接测量后与PC机直接传送。在硬件电路设计完成后,还用C语言编写了与硬件电路相对应的软件程序。介绍完系统的原理后,经过软件程序的处理,可以在上位机监控界面中以图形形式直观地显示出被测太阳能电池的伏安特性曲线,太阳能电池的性能参数也能够以数值形式清楚地展现出来,而且根据测试得到的伏安特性曲线的变化趋势可以判断出太阳能电池的故有的性能。由于界面直观地显示出被测太阳能电池的伏安特性参数,从而较为完整地表述了被测太阳能电池的相关信息。测试人员能够根据测试得到的结果对太阳能电进一步分析评判,判断该太阳能电池性能能否满足生产生活所需太阳能电池的要求。
参考文献[1]赵富鑫,魏彦章.太阳电池及其应用[M].国防工业出版社,1985:35-52[2]安其霖.太阳电池原理与工艺[M].上海:上海科学技术出版社,1984:41-44[3]左然施明恒王希麟.可再生能源概论[M].机械工业出版社,2007:160-198[4]安其霖.太阳电池原理与工艺[M].上海:上海科学技术出版社,1984:80-96[5]求是科技.PIC单片机典型模块设计[M].北京:人民邮电出版社,2005:56-75[6]艾雨.基于单片机的太阳能电池数据采集系统研究[G].武汉理工大学.2023[7]马淑华,王凤文,张美金等.单片机接口原理与接口技术[M].北京:北京邮电大学出版社,2007:189-191[8]刘坤,宋戈,赵洪波等.51单片机C语言入门应用开发技术大全[M].北京:人民邮电出版社,2023:295-310[9]王守中.51单片机入门与典型实例[M].北京:人民邮电出版社,2007:195-198[10]王守中.51单片机入门与典型实例[M].北京:人民邮电出版社,2007:205-222[11]马淑华,王凤文,张美金等.单片机接口原理与接口技术[M].北京:北京邮电大学出版社,2007:227-239[12]BasedonSCMmulti-functionaltemperaturetestingsystemdesign[G],1993
附录附录1:太阳能电池特性参数在线检测系统总体电路图:附录2:太阳能电池特性参数在线检测系统总体总体程序://头文件#include"pic.h"#include"math.h"#include"string.h"#include"stdlib.h"#include"stdio.h"//定义变量#defineuintunsignedint#defineucharunsignedcharfloattemp;//函数声明voidreset(void);//初始化函数voiddalayms(unitn);//延时nmsvoiddelayus(unitn);//延时nuscharwd(void);//温度采集函数ucardy(void);//电压采集函数uchargq(void);//光强采集函数ucharxs(void);//显示函数char*gcvt(floatvalue,intndigit,char*buf)//将数value转换成字符串并存于buf中,并返回buf//的指针,ndigit表示位数//定义I/O口#defineDQRA5#defineK1RD0#defineK2RD1#defineK3RD2//初始化函数voidreset(void){TRISA=0X3F;//设置A口为输入TRISB=0X00;//设置B口为输出TRISC=0X00;//设置C口为输出TRISD=0X00;//设置D口为输出FORTB=0X00;//给B口赋初值FORTB=0X00;FORTB=0X00;}//延时nms函数voiddelay〔uintn〕{uintj;chark;for(j=0;j<=n;j++)for(k=1000;k>0;k--)ASM("NOP");//插入汇编指令}//延时nus函数voiddelayus〔charn〕{charj;j=n;while(j>0){j--;ASM("NOP");}}//显示局部程序#defineLCD_ERD6//LCDE读/写时能控制#defineLCD_RWRD5//LCD读〔1〕/写〔0〕控制线#defineLCD_RSRD4//LCD存放器选择数据〔1〕指令〔0〕#defineCOM0//LCD_WRITE()中的第2参数为0表示写命令#defineDATA1//LCD_WRITE()中的第2参数为1表示写数据bank1charDD[16];//一行LCD显示数据暂存,定义在体1voidLCD_reset(void);//LCD初始化voidLCD_BUDY〔void);//读LCD是否忙voidLCD_READ〔void)voidLCD_WRITE〔char,char);//LCD写1字节命令或者数据charLCD_READ(void){ucharA1;LCD_RS=0;//存放器选择LCD_RW=1;ASM("NOP");//读为1LCD_E=1;ASM("NOP");//使能R1=P0RTB;//读数据LCD_E=0;ASM("NOP");//读数据结束LCD_RW=0;reurn(A1);}//写R1的8位,FLAG为存放器选择,1为命令,0为数据voidLCD_WRITE(charR1,charFLAG){LCD_RW=0;ASM("NOP");//写模式LCD_RS=FLAG;ASM("NOP");//存放器选择P0RTB=R1;LCD_E=0;ASM("NOP");//数据送入有效LCD_E=0;ASM("NOP");}//LCD初始化模块voidLCD_rest(void){LCD_BUSY();//LCD忙检测LCD_WRITE(0X38,COM);//序号6命令,4位数据格式,4行,5乘7点阵LCD_WRITE(0X0C,COM);//序号4命令,D(d2)=1,翻开显示;C(d1)=1,光标翻开;B(d0)=1,//光标闪烁LCD_WRITE(0X38,COM);//序号1命令,去除显示delayms(2);//延时2msLCD_WRITE(0X06,COM);//序号3命令,输入模式,I/D(d0)=1;地址加1;S(d0)=1,显示//位移关闭}//检测LCD是否忙voidLCD_BUSY〔void){unsignedcharA1;while(1){A1=LCD_READ();//读存放器if(R1&0x80)==0x00//最高位为忙标志位Break;};}//光标定位voidposcursor〔ucharline,ucharcol〕;//光标的行和列,均从0开始{charpos;LCD_BUSY();switchcase(line){case0:pos=0x80+col;case1:pos=0xC0+col;case2:pos=0x90+col;case3:pos=0xD0+col;}LCD_WRITE(pos,0)}intstrlen(constchar*s){constchar*cp;cp=s;while(*cp++);continue();returncp.s.l;}voiddispstr(char*s);{intlen;inti;len=strlen(s)for(i=0;i<len;i++)LCD_WRITE(s[i],1)}//温度采集局部#defineDQRA0//定义DS18B20熟读端口#defineDQ_DIRTRISA0//定义DS18B20口方向存放器#defineDQ_HIGH()DQ_DIR=1//设置数据口为输入#defineDQ_LOW()DQ=0;DQ_DIR=0//设置数据口为输出ucharTLV=0;//采集到的温度高8位ucharTHV=0;//采集到的温度低8位ucharTZ=0;//转换后的温度值整数局部//复位DS18B20函数voidre(void){ucharpresence=1;while(presence){DQ_LOW();//拉低至低电平delayus(503);//延时503usDQ_HIGH();//释放总线等电阻拉高总线,并保持15.6usdelayus(70);//延时70usif(DQ)persence=1;//没有接受到容许信号,继续复位elsepresence=0;//接收到容许信号delayus(403);//延时430us}}//写DS18B20写字节函数voidwrite_byte(ucharval){uchari;uchartemp;for(i=8;i>0;i--){temp=val&0x01;//最低位移出DQ_LOW();ASM("NOP");ASM("NOP");ASM("NOP");ASM("NOP");ASM("NOP");//从高拉到低电平,产生写时间隙if(temp==1)DQ_HIGH();//如果写1,拉高电平delayus(63)ASM("NOP");ASM("NOP");val=val>>1;//右移一位}}//DS18B20读字节函数ucharread_byte(void){uchar1;ucharvalue=0;//读出温度for(i=8;i>0;i--)value>>=1;DQ_LOW();delayus(6);//6usDQ_HIGH();//拉至高电平delayus(4);//4usif〔DQ〕value|=0x80;delayus(63)//63us}return(63);return(value);}//启动温度转换函数voidwd(){unit1;re();PORTA=0X02//复位等待从机容许write_byte(0XCC);//忽略ROMwrite_byte(0X44);//发送温度转化命令re();//再次复位,等待从机容许write_byte(0XCC);//忽略ROM匹配write_byte(0XBE);//发送度温度命令TLV=read_byte;//读出温度低8位THV=read_byte;//读出温度高8位PORTA=0X02;//释放总线TZ=(TLV>>4)|(THV<<4)&0X3f;//温度整数局部TX=TLV<<4;//温度小数局部temp=TZ+TX//}//A/D转换局部程序//定义一个共用体数组,用于存放A/D转换的结果union{inty1;ucharadrc[2];//用于存放A/D转换结果}adres[3];//adres[0]存放开路电压;adres[1]存放电压//adres[2]存放光强对应的电流bank3intres;//定义存放A/D转换结果的数组,在bank3中floatf1;//定义短路电流和光强系数floatgqdata;//定义光强的结果flotaopendata;//定义开路电压的结果flotashortdata;//定义短路电流的结果flotadydata;//定义电压的结果flotadldata;//定义电流的结果flotatempdata;//定义临时保存结果uintRST,RP,R;//定义电阻//函数声明voidadinitial();voidgq(void);uchardy(void);{ADCON1=0x84;//转移结果右移,及ADRESH存放器的高6位为0,且把RA0,RA11,//RA3口设置为模拟量输入方式,其他口为数字量输入口,切参考电压为//VddPIE=0x00;//去除A/D转换标志PIE2=0x00;//A/D转换中断允许ADIE=1;//外围中断允许PEIE=1;//外设中断允许}//光强采集子程序voidgq(void){ADCON0=0x49;//选择A/D通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年家居护理用品合作协议书
- 2025年新型阀控型全密封免维护铅酸蓄电池合作协议书
- 2025年度生物制药优先股入股协议
- 2025年度混凝土搅拌站租赁与安全培训服务合同
- 二零二五年度定制家具定制与家居智能化解决方案合同
- 2025年度木工行业安全标准制定与实施协议
- 二零二五年度公司员工社保权益放弃协议书模板
- 二零二五年度房屋抵押贷款与户外露营装备合同
- 2025年度物流企业合作投资与风险管理协议
- 2025年度旅游安全风险评估与应急预案合同
- 医疗信息共享与互联网医疗管理制度
- 人教版高中英语必修二词汇表(默写版)
- 汽车电器线束DFMEA范例
- 船模航模车模社团教案
- 【基于上市公司数据的康芝药业盈利能力探析(定量论文)11000字】
- 幼儿园小班学情分析案例及分析
- 2024年义务教师考试招聘考试试题及答案
- 无人机红外技术培训
- 2024中考英语1500词汇默写汇总表练习(含答案)
- 2022年四川省绵阳市中考语文真题
- 麦琪的礼物全面英文详细介绍
评论
0/150
提交评论