⑴ 请教各位大虾 本人用单片机做太阳能热水器控制系统 .. 程序编译出现问题..~~
dis_write_cmd 这个函数在哪里,在上面的程序中好像没有声明。子函数如果放在主函数之后的话是一定要声明的。
⑵ 基于单片机AT89C51的太阳能热水器的智能控制器设计 用汇编语言编写源程序
进我空间有答案,这东西嘛,很义贼。
⑶ 跪求...基于51单片机自动跟踪阳光太阳能热水器控制系统的设计
对绿色能源的开发和利用是响应我国节能减排,环保政策的举措,太阳能作为可持续,零污染,具有很高的环保价值和经济效益,高效利用太阳能还可以有效替代部分化石能源,从而降低因石化能源燃烧导致的污染,减轻雾霾。然而农村太阳能丰富,却没能得到很好的利用,即便现有的发电产品对太阳能电池板也大多采用固定支架。课题对此提出了能够跟踪太阳方向的云台支架,可实现太阳能电池板自动调节而始终面向光线最强的一面,提高太阳能发电的利用率。课题从云台,电机驱动,控制器,光线传感器,液晶显示等构成,课题成果不仅可以用到太阳能发电,还可以用到其它的向光场所,如天文观测等具有较高的实用价值。
随着时代的进步与科技的飞速发展,使得对能源的需求随之增加,对不可再生能源的过度依赖[1],从而使得不可再生能源的存储量急剧减少,一些不可再生能源(石油)被视为战略资源,据目前统计,煤炭、石油、天然气也会在岁月的实践中而日趋枯竭,消耗殆尽。这些不可再生能源的产生显然跟不上人类对其的需求,为更好的实现可持续发展,本课题提出了一种太阳追踪的可行方案,可以大大提升对太阳能的利用,减少对不可再生资源的过度依赖。
为了解决人们对不可再生资源的过度依赖和对清洁能源的高利用率。提出设计一款零污染高效率的装置——太阳追踪器。通过电机,控制器,采光板光线传感器等元器件之间的相互配合,实现对太阳光照射最强的方位,实现全方位无死角跟踪,恰巧正好急需这样一款具有安全、环保、高效率、以及取之不尽用之不竭的特点,也很方便就可以获取,如风能和潮汐能一样是绝对的无污染清洁能源,这也就很好的阐述了光能的可行性[2]。——对此提出太阳跟踪装置设计与制作。
优点:太阳作为一个取之不尽用之不竭的能源。在《太阳能利用技术》[3]就有相关的提到,所到达地球表面能量等同于每秒向地球源源不断的投放了500万吨煤炭。阳光所到之处,皆为财富,免费使用的同时也不需要考虑任何的运输费用以及零污染等特性。
缺点:即便如此的看似完美无缺,也存在着两个致命性缺点[4]:一是能流密度很小;二是太阳的光照强度也会因为(天气、白夜等)因素的不同而有着很大的差距,很难长时间维持在恒定值,这也在一定程度上大大的影响了使用效率[5]。
国外太阳追踪器:对太阳能的使用在两千零四年到两千零六年太阳能的发电量都是惊人的4961MW[6],在一九九七年,美国的Blackace研制了单轴追踪器,热接收率提高了百分之十五......,后期围绕高效率,轻质量展开。在太阳能游艇、太阳能飞机、太阳能瓦片等方面得到运用,也见证了太阳能利用的高效率性[7]。
国内太阳追踪器:在应用市场上面得到了不断扩张,对于太阳能追踪器的利用那也是一个相当热门的谈话主题,途径多年的经验,将其用在了太阳能热水器、太阳能路灯以及西部计划、利用太阳能发电、太阳能供暖等等[8]。
更多的往往是采用单轴跟踪的方式,相比之下更需要多轴,实现全方位无死角跟踪。
针对不同条件下,提出了自动控制和手动调节的两种工作方式:
其中以“自动模式”概述:在自动追寻的过程中,会自动判断光的强度的大小,若下面光照强度大于上面光照强度,STM32单片机就会直接驱动上端电机向下翻转;以便于在下午太阳西落的时候,获得更多的光照,若上面光照强度大于下面光照强度,STM32单片机就会直接驱动上端步进电机向上运动;若上下两个方位的光照强度均等,上端步进电机不进行动作。在上下光照均匀,左右方向运动的情况,右方位的光照强度大于左方位,STM32单片机就直接驱动下方位第一个步进电机向左方位一定角度转动;若左方位的光照强度大于右方位的光照强度,STM32单片机就直接驱动下方位第一个步进电机向左方位进行运动;当左右方位采光度也保持几乎均应的时候光照,那么下方位的第一个电机也将保持不动。
“手动模式”状态进行使用按键手动来完成设备状态的切换。四个按键对应控制电机完成:上、下、左、右的翻转动作。通过点动的方式来控制驱动步进电机的实际运动。
在给设备系统进行上电后,系统最初为“自动模式”,这样可以更好的在不受人为干预的情况下实现对太阳能的最大接收。
编译语言的选取
方案一:C语言
简洁紧凑、灵活方便;运算符的丰富性;数据结构的丰富性;结构式语言;语法局限性小,程序编写自由度大;通过对物理地址的直接访问,使得完全可以对硬件实现直接控制;程序执行效率高。
C语言面向过程,最主要的在于算法和数据结构。通过一个过程,对输入进行运算处理得到输出。
方案二:C++
C++语言是面向对象的语言,在C的基础上添加了面向对象、模板等现在程序设计语言的特性。拓展了面向对象设计的内容,使之更加符合现代程序设计的需要。
看似C++比C多了很多优点和特性,但C++并不是所有场合都适用,很多嵌入式开发系统,都只提供了C语言的开发环境,而没有提供C++的开发环境。很多C++语言不愿意干的脏活累活,C语言干起来快活得很。而C++因为过于复杂,在这方面就稍逊一筹了。
方案三:java
Java是一种解释性语言,Java人气极高,但其代码由于需要在运行前进行解释因此性能表现更差。C++会被编译为二进制形式,因此其能够立即运行且速度更快。两个程序都足够大、而且C++的代码经过优化,两者的速度差就会变得很显着甚至很惊人,C++会比java快很多。
从系统的复杂性出发来考虑,同时整个过程的计算量比较大,因此我选用了浮点数的计算方式,选用方案一作为整个系统编译方式。
2.2 控制系统总体方案选取
方案一:视日寻迹追踪模式
这样的一种模式,是基于天文学公式来得出太阳在不同时候的理论性的方位角和俯仰角,在后根据太阳每天在当地实际的运行轨迹位置编写控制算法程序,通过使用控制算法的方式来实现对太阳所在位置的计算,最后通过驱动太阳能板的两个步进电机来达到俯仰和方位上的转动。有点是对外界环境的依赖小,同是也存在弊端,那就是不管外界环境是何种天气,它都会以同样的工作方式运动,增加了不必要的能耗和元器件的寿命磨损。
太阳的俯仰角h和方位角A的两个位置参数,可表达如下所示:
δ为赤纬角,Φ是本地纬度,Ω表示太阳时角。
方案二:光电追踪模式
该模式的核心算法是利用光敏传感器对太阳位置进行检测。具体方法:在遮阳板两侧完全对称地安装光敏传感器,当太阳光垂直照射在太阳能光伏电池板上时,安装在两侧上的光敏传感器所产生的电信号相等,将这两路信号经过放大后送入比较器进行比较,此时不驱动步进电机进行转动。当太阳位置移动后,遮阳板对阳光进行遮挡,此时两侧的光敏传感器产生的电信号不相等,从而经过放大比较后产生差信号,电机开始运动,完成太阳跟踪过程。
通过两者的比较,选择方案二,简单易操作性,更适合被普及广泛使用,在同等使用条件下,最简方案,则是最优方案。
2.3主控系统选择
方案一:51单片机作为控制芯片。主要是表现在:主要控制参数是使用设置寄存器变量得以实现,在程序的修改方面,也是相当的方便快捷,成本也是相对低廉,性能与相对简单的太阳能跟踪装置系统匹配;数字化的控制系统,可以达到较高的精度。
方案二:采用FPGA这样的大规模可编程逻辑器件,但本题属于控制类,即现场可编程门阵列[WJ1] ,它是在PAL、EPLD等可编程器件的基础上进-一步发展的产物。
方案三:ARM作为一种高性能嵌入式系统。考虑到方案的可实行性,STM32可以很好的解决数据处理和控制功能,十分适用于太阳能跟踪,虽是ARM价格昂贵,但是在后期的可拓展空间更大。[WJ2]
结合本次设计的任务要求,以及上诉三种方案的相对比较,最后选用方案三更适合本课题的设计标准,具体采用STM32F103C8T6。
2.4电机选择
方案一:选择步进电机,然而步进电机的最大优点就是可以精确地控制电机步数和角度,缺点是价格昂贵。
方案二:选择直流电机。价格便宜是它的一大亮点,通过减速齿可以提高扭力,具有更大的负载,但是对电机的高精度控制直流电机达不到设计要求。
步进电机作为一种将电脉冲转换成相应角位移或线位移的电磁机械装置。通过直接控制输入的脉冲数量,直接控制其启停,启动是速度快,步距角和转速只取决于脉冲频率,受外界影响因素小。因此,对于本设计任务要求,为更精确地完成对角度值的精度把控,更好地利用太阳能,因此我选用方案一作为本次课程设计的驱动电机。
2.5步进电机驱动系统选择
方案一:L298专业电机驱动模块的选择,这类驱动模块的操作方便以及接口简单同时他们既可以驱动步进电机,也可驱动直流电机。
方案二:三极管等分立元件搭H桥。亮点在于实惠型,控制方式简单以及结构简单。优点的同时也伴随着弊端的存在,电流的承载能力比较小,相同的驱动能力受到限制,分立元件则体积较大同时稳定性也得不到保证。
方案三:采用集成芯片,ULN2003。 .
达林顿管ULN2003,该芯片最多可一次驱动八块步进电机,本设计作用于两个步进电机,在实际的使用中,往往起着放点输出的作用用于驱动大负载的步进电机等。
本次设计综合考虑,依据实际设计需求,选择方案三作为步进电机的驱动系统。
2.6实体结构框架选择
方案一:两电机互相处以垂直状态,电机一是左右的转动而电机二是上下的转动,在不引入外界条件辅助设备的情况下会出现运动死角,从成本化出发是不可取的。
方案二:将两个电机由之前的垂直安装,改变为大于90°的安装,在不引入外部设备的情况下,可以很好的避开运动死角,从而可实现全方位无死角跟踪,综合上述情况选择方案二进行本次的实体结构设计。
2.2系统设计
2.2.1 单片机构成如下图:
逻辑不通顺,要指出FPGA不适用于本题的缺点
STM32整体比FPGA便宜很多,这条论证建议修改,或者做一个成本对比表再下结论
控制方式:第一步就是将数据程序输入到输入设备里面,输入设备将程序传输给运算器CPU和存储器,各自程序都对应的传输到控制器里面,由控制器完成完成相互的指令传递,最后都是作用于输出设备,在输出设备上显示出来的结果就是最初程序所要表达的效果。
2.2.2 系统整体控制框图如下:
图2–2–2 系统整体控制框图
控制方式:完成整个驱动控制,第一步就是感光元件及光敏电阻传感器对外界光的采集,完成电压跟随,通过A/D转换,然后通过电压的比较,使用STM32F103C8T6单片机控制电机的驱动,最终完成不同电机在不同的光照强度情况下不同方向的运动,最后实现对光的最大化接收。
2.2.3 电机控制框图如下:
图2–2–3 电机控制框图
控制方式:通过光敏传感器对光的采集,实现了最后对电机运动方式的不同选择和控制。
当感光元器件第一组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成水平方向的电机正转,并返回最初状态。
当感光元器件第二组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成水平方向的电机反转,并返回最初状态。
当感光元器件第三组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成垂直方向的电机正转,并返回最初状态。
当感光元器件第四组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成垂直方向的电机反正,并返回最初状态。
当所有的感光元器件都处于接受管的均匀照射时,此时的光照强度几乎大小相等,也就电机的状态保持不运动。
2.2.4整体电路原理图如下:
图2-2-4 整体电路原理图
系统软件总体设计流程如图 2-2-4 所示。系统启动后,软件先进行初始化等工作,当程序初始化完成后,通过 感光元器件获得当前的光照强度,然后根据初始化的参数,控制步进电机将太阳能光伏板转动到理论的初始状态,预定方位。将太阳能光伏板转动到理论位置后,程序开始判断步进电机转动模式是手动模式还是自动,初始默认状态是自动跟踪模式。
当手动模式时,人为调整电机控制上下左右 4 个按键的状态,使得电机按照人们预想的方向进行运动,以此来得以控制四个方位的不同垂直转动和水平移动的俯仰角和方位角。当程序判断为自动模式后,开始自动读取检测电路的返回信号,当检测到是各个方位的光照强度值有较大的的差异是,那么单片机就发出控制指令控制步进电机进行转动,升压模块是为了给整个系统稳定供电而存在。
⑷ 用PLC控制太阳能热水器的优点与缺点,用单片机控制太阳能热水器的优点与缺点
优缺点比较: 单片机控制:优点,经济实惠,成本相对较低;缺点,用单片机制作的主控板受制版工艺、布局结构、器件质量等因素的影响导致抗干扰能力差,故障率高,不易扩展,对环境依赖性强,开发周期长。一个采用单片机制作的主控板不经过很长时间的实际验证很难形成一个真正的产品。 PLC控制:优点:PLC是经过几十年实际应用中检验过的控制器,其抗干扰能力强,故障率低,易于设备的扩展,便于维护,开发周期短。缺点:成本相对单片机要高!
⑸ 基于单片机的太阳能热水器控制器
3.1.6 太阳能发电路设计
太阳辐射能要通过光电效应或者化学效应来实现电能的转换,那么我们首先就要使用到可以吸收太阳光的太阳能电池板(Solar panel),其制作材料大部分依旧使用“硅”,对于其普通的干电池或者充电电池而言,最大的亮点则是节能环保零污染。
一、太阳能电池板结构组成
1)超白玻璃是一种具有在高透明性的低铁玻璃,透光率达到了惊人的91.5%,晶莹剔透、高贵典雅的特征,因此也被富裕了“水晶王子”的美称。
2)使用EVA作为固定钢化玻璃和电池片的原材料,对于使用中的EVA材质的好坏,这也会是直接影响到相关组件的使用寿命,当相关组件在自然情况下是全部裸露在自然化环境中,而空气中的容易色变,从而影响组件的透光率。
晶体硅主要是分为多晶和单晶料是最主要的光伏材料,在市场中的占比也是惊人的达到了90%以上,然而在今后较长时间内也是主要是以硅作为太阳能电池板的主要材料,可将其相当不错的未来可预见性。
实物图如下图所示:
图3-1-6(a) 太阳能电池板实物图
其电路接口原理图如下图所示:
图3-1-6(b) 太阳能电池板发电接口原理图
3.1.7 TP4056锂电池充电模块电路设计
TP4056锂电池充电模块是可以适用于USB电源和与适配器,其内部采用PMOSFET架构,再使用了防倒充电电路,因此不需要外接隔离二极管,防止电回流,TP4056是作为一种恒定电流/电压的可持续性充电模块,也是作为本次选择的有力依据。为了防止因为高温和大功率状态下对芯片的影响,选用TP4056可完成对电流大小的可控调节。
本模块特点:
板载TP4056锂电充电管理芯片。
USB接头,可完成直接电脑或者外设通过USB口直接上电。
IN+与IN-排针供电。
输入电压范围值:4V-8V,输出最大充电电流范围值:1000mA。
充电时红灯亮,充电完成蓝灯亮。
TP4056锂电池充电模块接口原理图如下图所示,锂电池并联的电容是滤波作用,保证锂电池充电电压的稳定平稳输出。
锂电池充电模块如下:
图3-1-7(a) TP4056锂电池充电模块接口原理图
TP4056锂电池充电模块实物图如下图所示:
图3-1-7(b) 锂电池充电模块实物图
3.1.8 USB-5V升压模块电路设计
本USB-5V升压模块,器件丝印为4X-NXH也称之为HX3001,是一款高效输出、恒定频率、PWM控制。其显着特点是低压0.9V低压启动,同时转换效率高达94%,中等功率运用,可提供我电压输出规格。此设计系统使用的既是升压模块将3.7V升压到5V的电压的转换过程。
三、使用说明
本模块USB母口输出5V直流电压,如果需要外接5V电源线,可以直接充USB母口座的5V正极焊盘或者模块正面特定位置电容一端跳线取线。
实物图如下:
图3-1-8(a) 模块5V跳线取线图
USB-5V升压模块焊接时,可以直接用电源线直接焊接电源输入端,也可以插入单排针焊接后插在PCB板或万用板上。
下图就是USB-5V升压模块接口原理图,当我们将开关拨下后,系统中的升压模块得电开始正常工作,随之使3.3V锂电池电压升压到5V,相反则是升压模块不工作。电容的作用在系统中都是起着减小电压波动,让电压更平稳的输出。
接口原理图如下:
[WJ4]
图3-1-8(b) USB-5V升压模块接口原理图
USB-5V升压模块实物图如下图所示:
图3-1-8(c)USB-5V升压模块实物图
3.1.9 分压电路设计
串联分压的原理:
在串联电路,不变的是电流大小处处相等,各个分支的电压之和为电压总和,即分电路电压从始至终都小于总电压,因此称为分压。
当所采集到的电压信号超过选择的A/D模块最大采集电压值,那么就在这时就需要采用分压电阻的形式来解决因电压过大而出现的溢出。其电路原理图如下图所示:
;
图3-1-9(a) 分压电路原理图
图3-1-9(b) 分压电路原理
3.2 STM32 单片机系统软件设计
3.2.1 Keil程序开发环境
系统中所使用到的单片机开发环境是Keil,而与汇编相比,C语言的闪光点则是在可维护性、结构性、可读性、功能上,一目了然的逻辑框架,使得易学易用,在Keil的中,有着C编译器、链接器和库管理等在内的一整套而又完整开发方案,我们使用集成开发环境(μVision),把各个部分组合在一起。通过上面的基本诠释选择Keil那就是最后的选择,最好的选择。当然了运行Keil软件需要WIN98、WINXP等操作系统都是可以的。其中Keil有以下特点:
Keil软件可以支持在WIN7、WIN8以及WINXP等多种操作系统,这也是给编译者程序员提供了及其丰富的库函数与功能强大的开发工具。
Keil实现从编辑到编译到到连最后到调试的一整套开发流程。
Keil软件界面如下图所示:
图3-3-2 Keil uVision5开发界面图
3.2.2 STM ISP程序烧录
STM ISP是用于stm32进行程序的烧录软件,可以实现通过直接下载单片机所用程序,同时也是完全支持编程的编写、程序的校验等。单片机开发板、下载器和PC连接完成后,第一步打开软件并选择对应的串口号,再者就是选择目标程序文件对应所在的地址,最后鼠标单击“开始变成(P)就可以完成对程序的下载”。
具体下载界面如下图所示:
图3-3-3 烧录软件下载界面
3.2.3 CH340串口程序烧写模块介绍
CH340串口烧写模块,通过USB接口相接,这使得可以实现与任何一台笔记本电脑的完成对STC系列单片机的程序烧写,通过此下载器的高性能和低成本的绝对优势,显然在本次STC系列单片机中的应用也将表现得格外独到。
一、CH340串口烧写模块特点:
支持 USB多种通信,非单一固定通信。
全面支持WIN98、VISTA、WIN7 等多种现目前常见的操作系统,适应性强。
采用USB接口直接供电。
在对芯片编程时,可自行供电也可以从USB口来获电。
新程序的编写不影响目标板的程序运行。
投射范围广,对于STC全系列芯片烧录支持的。
输出电压接口使用编程器提供3.3V与5V。
速度更快更稳定。
使用进口原装芯片,使得其能够在能高速稳定编程。
模块如下图所示:
图3-3-4(a) CH340串口烧写模块
二、CH340串口烧写模块引脚说明
TXD 接单片机的RXD引脚
RXD 接单片机的RXD引脚
GND 接GND。
⑹ 基于单片机的全自动太阳能热水器控制器的设计。
给我邮箱,发资料给你。
⑺ 基于51单片机的太阳能控制器设计
草坪灯控制器,
一般不用单片机。
而是用专用芯片做的。
⑻ 求C51单片机设计太阳能热水器温度传感器型号
DS18B20数字温度传感器
⑼ 基于STC单片机的太阳能控制器设计
整个系统使用了以STM32F103C8T6单片机作为核心板、太阳能板、锂电池充电、稳压电路、光敏采集电路、驱动电路、升压稳压模块、步进电机、按键电路组成。整个系统共计有光敏采集板与主控板和两块板子,以对应的连接线进行相互连接。其中光敏采集板主要放置光敏传感器,模拟太阳能板的运作;另外的主控板起着对显示器、电源接通管理、按键接通控制以及步进电机的相关驱动。
具体控制展现如下:
一、太阳能板将太阳光能进行收集,收集的同时进行光能与电能的转换,通过电路的稳压过程,将电传递给备用电池进行电量的储存,在干锂电池经过升压模块和稳压模块稳压到5V给整个系统供电,有单独的电源控制开关可以进行电源的通断控制。在给设备系统进行上电后,系统最初的默认形式为随太阳运动而运动的“自动模式”,还有就是可以通人为控制改为“手动模式”[9]也是可行的。
二、在系统通电的情况下不管是属于自动还是手动模式,此时的光敏电阻都会采集光线强度,并且在显示屏上面进行完美的显示出来,其中显示的效果为上、下、左、右四个方位。通过两个步进电机驱动来完成上下左右运动,将两个步进电机焊接在一块形成了一个角度多自由度的整体。两个电机都是通过连接线与主板进行的连接,通过光敏电阻对光强度的采集获得四个方位的不同关照强度值,最后通过与预计值的比较,最后来确定电机的运动轨迹[10]。
三、其中以“自动模式”为例:在自动追寻的过程中,会自动判断光的强高度的大小,若下面光照强度大于上面光照强度,STM32单片机就会直接驱动上端电机向下翻转;以便于在下午太阳西落的时候,获得更多的关照,若上面光照强度大于下面光照强度,STM32单片机就会直接驱动上端步进电机向上进行运动[11];若上下两个方位的光照强度均是大小相差无几,那么上端步进电机则不进行任何的动作。接下来就是对于当上下光照均匀左右运动的情况,若右方位的光照强度大于左方位的情况下,STM32单片机就直接驱动下方位第一个步进电机向左方位一定角度转动[12];若左方位的光照强度大于右方位的光照强度,STM32单片机就直接驱动下方位第一个步进电机向左方位进行运动[13];当左右方位采光度也保持几乎均应的时候光照,那么下方位的第一个电机也将保持不动。那么此时此刻设备的状态将是完全的禁止,STM32单片机将不对电机给出任何的运动指令[14]。
三、也可以切换为“手动模式”状态进行使用按键手动来完成设备状态的切换。四个按键对应控制电机完成:上、下、左、右的翻转动作。通过点动的方式来控制驱动步进电机的实际运动[15]。
四、当太阳能采集受限的时候,那么此时就使用外部电源USB充电模块对其进行锂电池上电,以保障系统的正常运行[16]。
1.44寸显示屏显示了光敏电阻采集光强的数值范围为0-1000,在实际应用过程中不管是处于自动还是手动模式下工作,光敏电阻都可以通过上、下、左、右四个方位来进行光的采集。其中通过两个不同维度的步进电机驱动来实现,既是上下翻滚和左右转动。上端步进电机与光敏采集板直接像粘接,两板通过连接线直接焊接而成。当然了对其的封装也是很有必要的完善过程。
在原有的基础上还可以进行与外部设备进行搭配使用,比如在发电厂蓄电上的使用、对鱼塘中的制氧机进行提供供电、通过电红外传感器实现人走灯灭,蓝牙远程控制路灯等。