餐饮品牌设计网站wordpress 免备案空间

web/2025/10/7 21:22:12/文章来源:
餐饮品牌设计网站,wordpress 免备案空间,百度关键词优化工具,长沙网站制作案例摘 要 随着我国经济的飞速发展#xff0c;促使各种能源使用入不敷出#xff0c;尤其是最主要的能源#xff0c;煤炭石油资源不断消耗与短缺#xff0c;因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点#xff0c;且分布范围广促使各种能源使用入不敷出尤其是最主要的能源煤炭石油资源不断消耗与短缺因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点且分布范围广拥有非常广阔的发展前景。但是太阳能利用效率较低这个问题一直影响和妨碍着太阳能技术的推广和发展。 在太阳能发电中太阳板受光面与太阳光线的角度是决定太阳能发电效率的关键因素。本设计的原理是利用传感器光敏电阻把接收到的光信号转换成电信号然后经过信号处理及单片机控制后由控制电路输出相应的控制数字信号驱动方位角调整机构和高度角调整机构实现相应的位置调整。 本课题选用STC89C51单片机作为智能单元根据单片机的特点和所需实现的功能着重完成了单片机外围硬件电路设计和对应的软件设计。 关键词 太阳跟踪; 单片机; 光敏 目     录   摘  要    Abstract    第1章 绪论  1.1 研究的背景和意义  1.1.1课题研究的目的和意义  1.2国内外的研究情况  1.3论文的主要研究内容  1.4本章小结    第2章 系统的总体设计  2.1太阳跟踪方式  2.1.1光电跟踪  2.1.2视日运动轨迹跟踪  2.2系统总体设计要求及分析  2.2.1系统总体设计要求  2.2.2系统总体设计分析  2.3本章小结    第3章 系统的硬件设计  3.1单片机控制电路  3.1.1复位电路  3.1.2晶振电路  3.2光电转换电路设计  3.2.1光电传感器  3.2.2光电转换电路工作原理及电路设计  3.3 AD转换模块电路设计  3.3.1AD转换模块  3.4步进电机驱动电路设计  3.4.1步进电机的介绍  3.4.2步进电机及其控制方式  3.4.3步进电机驱动电路  3.5单片机外围电路设计  3.6系统实物平台搭建  3.7本章小结    第4章系统软件设计  4.1按键部分子程序  4.2指示灯部分子程序  4.3主程序模数转换  4.4驱动电路子程序  4.5 AD电压采样子程序  4.6本章小结    第5章结  论  5.1总结  5.2不足与进一步改进    参考文献    谢  辞    附  录  第1章 绪论 1.1 研究的背景和意义 随着社会的飞速发展人们保护环境的意识也随之提高致力开发一些环保能源比如在风能水力发电太阳能等各种新型能源中有很多专家学者都倾向于开发太阳能。风能、水能、潮汐能、生物质能等它们都属于可再生能源而且都来自于太阳能所以太阳能是那些可再生能源中最主要的基本能源。太阳能是一种新型节能能源它与普通的能源比较有四个特点 第一、 太阳能的总量十分巨大每年辐射到地球表面上的太阳能大约相当于130万亿吨煤碳燃烧的热量并且跟据世界能源会议统计世界已经探明可着手采煤炭储量总计为15980亿吨估计还能开采200年全世界可以开采的化石能源总量约相当于33730亿吨原煤由此可以说太阳能的总量是现今世界上可以开发的最大的能源。第二、太阳能具有无害性太阳能是一种清洁无污染的能源开发和利用太阳能不会污染环境它是最干净的能源之一在环境污染愈发严重的今天这一点是非常可贵的所以人类对太阳能的普及已经是重中之重。第三、太阳能具有普遍性它是我们可以利用的最丰富的能源自从地球上有生命诞生以来它们就主要以太阳提供的辐射能生活太阳光它普照大地在地球上无论哪里都有太阳能尤其是对于交通不发达的村庄、岛屿和偏远地区更具有利用价值也没地域限制无论陆地或海洋到处都有都可以直接开发利用而且不需要开采运输。第四、太阳能还有长久性科学家根据日前太阳产生的核能速率进行估算得出结果氢的储存量可以维持上百亿年而且地球的寿命约为几十亿年单从这一点上就能够说明太阳能量是用之不竭的。由此可见大规模开发和利用太阳能是我们面向未来实现可持续发展的必经之路。   随着社会日益发展人类对电的需求每年以很大的幅度增加所以对能源的需求也极速增长。全世界对这些能源的消耗在1970年约为83亿吨的标准煤但是在1995年这种消耗竟然达到了140亿吨的标准煤也就是说在25年间增长了69.7%据这种增长速率科学家预计到2020年全世界对能源的消耗会高达195亿吨的标准煤。据公认的估计假如人类对能源的需求一直以现在的速度增长那么全世界的石油将在今后40年间被消耗完还有天然气和煤也最多分别能维持60年和200年左右。不仅如此我们大量使用化石能源已经开始造成全球气候变暖燃烧煤碳会通过煤渣、烟尘释放出大量的有化学毒性的重金属和有放射性的物质严重污染了我们的生活环境。  所以利用和开发用新兴能源和可再生能源来渐渐减少和替代化石原料的使用是保护生态环境、走经济社会可持续发展之路的重大措施。这个举措对于世界尤其是我国来说是十分迫切的。太阳能不仅可以再生产不污染环境而且最主要是总量可观分布范围广泛所以它是世界上公认的理想新兴清洁替代能源。 1.1.1课题研究的目的和意义 根据现况开发利用太阳能受到科学家们越来越普遍的重视因此它是各国都在研究的重大课题。它对人类来说是一种取之不竭而且能自由免费利用的绿色能源。我国的太阳能资源非常丰富它作为一种清洁无污染的能源发展前景也是非常广阔太阳能发电已成为全球最受欢迎的利用新型能源的方法。但是也存在一些瑕疵太阳能也有间歇性、光照方向和光照强度随时间不断变化等等问题这样我们就对太阳能的采集和利用提出了更高的要求。目前我们都不能充分利用太阳能资源因为很多太阳能电池板的排列规律基本上是固定的所以发电的效率特别低。根据实验在太阳能光生电中相同条件下采用太阳跟踪发电的装置要比固定发电的装置的发电量高出35 因此在太阳能利用中进行追踪是十分重要的!智能型自动跟踪太阳的装置设计是为了解决太阳能转换效率低的问题并且为了更大限度的利用太阳能。太阳光照射的角度不能固定要想达到最大的集热效果太阳能电池板应和太阳光线保持垂直。本设计要求设计一种可以自动跟踪太阳的控制系统使太阳能电池板可以随着太阳光线的移动而转动方向保持太阳板与太阳光线基本垂直以达到最大的发电效率成本低有较好的推广利用价值。 长期以来世界能源主要消耗石油煤炭等矿物燃料但是这些都是不可再生能源数量有限同时矿物燃烧时会产生大量的二氧化碳污染环境。所以根据现状各国加大力度开发新能源。于是太阳能这个清洁可再生能源已经受到许多国家的重视和利用充分利用太阳能资源有着深远的能源战略意义。 1.2国内外的研究情况 我国很多科学家也都陆续展开了这方面的研究。1994年《太阳能》杂志简述了单轴液压的自动跟踪器完成了单向跟踪国家气象局计量站在1990年研制出了FST型全自动太阳跟踪器成功用于太阳辐射观测。2005年与以色列合作在江苏省南京市建立成了第一座功率为75kw的太阳能塔式热发电示范电站并成功运行发电。 此外国外对太阳跟踪研究也有了突破性进展。二十世纪50年代太阳能利用的领域出现了两项重大的技术突破一是1954年在美国贝尔的实验室研制出6实用型单晶硅电池二是1955年以色列Tabor提出选择性吸收表面概念和理论并研制成功选择性太阳吸收涂层。这两项技术的突破为使太阳能的利用进入现代发展时期奠定了技术基础。此外1997年美国的Blackace研制出了单轴的跟踪器这种装置根据赤道坐标系下的太阳运行原理完成东西方向的自动跟踪但南北方向通过手动的调节接收器的接收效率提高了15%。1998年美国加州成功的研制出了ATM两轴的跟踪器使热接收率得到进一步提高。   据现阶段国内外科学家对太阳跟踪的研究情况来看普遍采用单轴的跟踪方式。随着科学技术的发展太阳跟踪装置会朝着双轴的跟踪方向发展做到同步跟踪太阳太阳能的接收率有了很大提高。 1.3论文的主要研究内容 本设计要求设计一种自动的跟踪太阳的智能控制系统从而更有效的利用太阳能。所以采用双轴跟踪的方法对太阳进行跟踪使太阳能接受装置能够始终垂直于太阳。  主要内容包括 1分析太阳的变化规律由此为基础制定比较合理的跟踪策略。 2分析所需要的传感器光敏电阻的功能及工作原理设计光电转换电路。 3分析系统的硬件要求选取符合条件的控制芯片设计控制系统。 4设计控制方案步进电机以及驱动电路。 5软件设计及实物平台搭建。 1.4本章小结 本章主要介绍了本课题的研究背景和意义说明了太阳能是一种新型的清洁无污染能源并且含量丰富分布范围广属于可再生能源国内外已经开始开发利用太阳能了并且受到国际上认可对社会主义建设有着深远的战略意义。还介绍了本设计的总体思路和需要研究的内容。 第2章 系统的总体设计 2.1太阳跟踪方式 目前对太阳能利用最普遍的形式是通过太阳板将太阳能转换成热能为了收集到尽可能多的太阳能最好采取跟踪方式使太阳板始终正对太阳。传统的跟踪方法主要采用以下两种方法光电跟踪和视日运动轨迹跟踪前者是闭环的随机系统后者是开环的程控系统。 2.1.1光电跟踪 光电追踪装置利用光敏传感器如硅光电管进行太阳光的检测。在这些装置中光电管的安装靠近遮光板。通过调整遮光板的位置使遮光板对准太阳、硅光电池处于阴影区当太阳西移时遮光板的阴影偏移光电管受到阳光直射输出一定值的微电流作为偏差信号经放大电路放大由伺服机构调整角度使追踪装置对准太阳完成追踪。光电追踪灵敏度高结构设计较为简单但受天气的影响很大如果在稍长时间段里出现乌云遮住太阳的情况太阳光线往往不能照射到硅光电管上导致追踪装置无法对准太阳甚至会引起执行机构的误动。 2.1.2视日运动轨迹跟踪  视日运动轨迹跟踪方式有两种可分为单轴和双轴。 1单轴追踪。单轴跟踪又可分为水平单轴跟踪、不同倾角单轴跟踪、最佳倾角跟踪。单轴追踪一般采用①倾斜布置东西追踪②焦线南北水平布置东西追踪③焦线东西水平布置南北追踪。这三种方式都是单轴转动的南北向或东西向追踪。单轴追踪的优点是结构简单但是由于入射光线不能始终与主光轴平行收集太阳能的效果并不理想。 2双轴追踪。如果能够在太阳高度角和方位角的变化上都能够追踪太阳就可以获得最多的太阳能全追踪即双轴就是根据这样的要求而设计的。双轴追踪又可以分为两种方式极轴式全追踪和高度角方位角式全追踪。   2.2系统总体设计要求及分析 2.2.1系统总体设计要求 对于本设计课题的整体要求是造价低廉、结构简单、性能可靠、充分考虑其经济性。在结构设计过程中避免复杂和浪费力图简单整洁并且要便于安装和维护。另一方面在控制单元设计中要充分考虑到系统的全天候要求要选用耐用和抗干扰性强的执行单元避免发生故障。 本设计所要达到的目的是提高太阳能的利用率确定使用太阳板将太阳能转化为电能。通常对太阳能进行转换的时候因为太阳是不停运动的所以如果接收装置是固定的则无法时刻做到与太阳光线垂直只能在固定时间吸收某一部分太阳能而在其他时间的吸收效率不高甚至根本无法吸收到太阳能因此如果使太阳的吸收效率提高必须要使太阳能吸收装置与太阳运行轨迹一致从而可以持续吸收太阳能。在本设计中采用的是双轴跟踪法对太阳进行实时跟踪使太阳能板能够始终正对太阳从而提高吸收效率。 设计要求如下 此装置能根据天气条件进行工作晴天自动跟踪阴天或黑夜停止跟踪。在进行跟踪时能确保太阳板始终与太阳光线垂直更充分吸收太阳能。在本设计中要求硬件部分和软件部分能准确合理的配合和工作。 2.2.2系统总体设计分析 本设计主要模块包括单片机控制电路,光电转换电路AD转换电路电机驱动电路。本部分首先主要介绍各个模块的硬件电路以及整体实物平台搭建部分的原理分析还有软件设计方面的研究。 硬件方面采用双轴跟踪系统能够同时在方位角和高度角两个方向进行跟踪由光电传感器信号处理及控制电路方位角及高度角调整机构组成。传感器把接收到的光信号转换成电信号然后经过信号处理及控制电路后由控制电路输出相应的控制信号驱动方位角调整机构和高度角调整机构实现相应的位置调整。 软件方面以单片机芯片为控制核心部分经过数模转换模块最后通过AD电压采样控制步进电机的正反转。 综上所述本设计采用的具体方案是阳光照在光敏电阻上通过光电转换变成电压值输入AD转换电路进行DA转换然后进行AD电压采样输入控制核心单片机经处理后最后经过驱动芯片从而控制步进电机的正反转使太阳板始终与太阳光线垂直。 下图为系统的总体设计方案 图2.1系统总体设计方案 2.3本章小结 本章主要介绍了太阳跟踪系统的两种跟踪方式分别简述了两种跟踪方式的特点和原理并最终决定采用双轴自动跟踪的方式。此外也大体上说明了总体设计方案和原理总结出了流程图。 第3章 系统的硬件设计 3.1单片机控制电路 为了使用方便系统要求可以进行在线改写并能在断电情况下保存数据而不需要保护电源同时使系统使用尽可能少的外围扩展芯片提高系统运行的可靠性要求使用的单片机具有片内电擦除可编程只读存储器基于以上原因选用STC89C51单片机。它是由复位电路和晶振电路构成。 STC89C51单片机是最早期也最典型的产品STC89C51单片机学习板是一款基于8位单片机处理芯片STC89C52RC的系统。STC89C52RC是采用8051核的ISPIn System Programming在系统可编程芯片最高工作时钟频率为80MHz片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器器件兼容标准MCS-51指令系统及80C51引脚结构芯片内集成了通用8位中央处理器和ISP Flash存储单元具有在系统可编程ISP特性配合PC端的控制程序即可将用户的程序代码下载进单片机内部省去了购买通用编程器而且速度更快。STC89C52RC系列单片机是单时钟/机器周期(1T)的兼容8051 内核单片机是高速/ 低功耗的新一代8051 单片机全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。 有如下功能 ·8位CPU·4kbytes程序存储器(ROM) (52为8K)   ·128bytes的数据存储器(RAM) 52有256bytes的RAM ·32条I/O口线 ·111条指令大部分为单字节指令 ·21个专用寄存器   ·2个可编程定时/计数器 ·5个中断源2个优先级52有6个 ·一个全双工串行通信口   ·外部数据存储器寻址空间为64kB ·外部程序存储器寻址空间为64kB   ·逻辑操作位寻址功能 ·双列直插40PinDIP封装 ·单一5V电源供电  CPU由运算和控制逻辑组成同时还包括中断系统和部分外部特殊功能寄存器  RAM用以存放可以读写的数据如运算的中间结果、最终结果以及欲显示的数据   ROM用以存放程序、一些原始数据和表格   I/O口四个8位并行I/O口既可用作输入也可用作输出 T/C两个定时/记数器既可以工作在定时模式也可以工作在记数模式 五个中断源的中断控制系统   一个全双工UART通用异步接收发送器的串行I/O口用于实现单片机之间或单片机与微机之间的串行通信  片内振荡器和时钟产生电路石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。 图中各引脚连接 LED1  LED2是两个指示灯分别代表自动模式和手动模式TX  RX是指串口通讯接口即程序下载接口KEY1-KEY5是代表五个按键其中一个是手动和自动模式之间的切换另外四个是手动模式下手动控制电机的上下左右四个方向的转动X1  X2是连接晶振电路的IN1-INT8是一个上拉排阻它连接驱动芯片ULN2803目的是提高输出电平增加单片机的驱动能力SDA  SCL分别代表连接I²C总线的数据线和时钟线。 图3.1单片机最小系统 3.1.1复位电路 单片机的置位和复位都是为了把电路初始化到一个确定的状态一般来说单片机复位电路作用是把一个例如状态机初始化到空状态而在单片机内部复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。  单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。   图3.2复位电路 3.1.2晶振电路  单片机系统里都有晶振在单片机系统里晶振作用非常大全程叫晶体振荡器他结合单片机内部电路产生单片机所需的时钟频率单片机晶振提供的时钟频率越高那么单片机运行速度就越快单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。  在通常工作条件下普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作以提供稳定精确的单频振荡。  单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振便于各 部分保持同步。有些通讯系统的基频和射频使用不同的晶振而通过电子调整频率的方法保持同步。  晶振通常与锁相环电路配合使用以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号可以用与同一个晶振相连的不同锁相环来提供。 STC89C51使用11.0592MHz的晶体振荡器作为振荡源由于单片机内部带有振荡电路所以外部只要连接一个晶振和两个电容即可电容容量一般在15pF至50pF之间。 3.2光电转换电路设计 3.2.1光电传感器 光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器当它受到光的照射时半导体片光敏层内 就激发出电子—空穴对参与导电使电路中电流增强。 光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线将其封装在带有透明窗的管壳里就构成光敏电阻为了增加灵敏度两电极常做成梳状。入射光消失后由光子激发产生的电子—空穴对将复合光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属电极加上电压其中便有电流通过受到一定波长的光线照射时电流就会随光强的增大而变大从而实现光电转换。光敏电阻没有极性纯粹是一个电阻器件使用时既可加直流电压也加交流电压。半导体的导电能力取决于半导体导带内载流子数目的多少。 3.2.2光电转换电路工作原理及电路设计 光电转换装置接收太阳光将光信号转换成电信号根据所采集到的信号由单片机分析得最终控制的步进电动旋转与转向来达到太阳能板,结果始终是垂直于入射光线从而达到利用太阳能的最高效率。其中光电检测A对左远离光线进行检测当光线远离电池板时A检测会给单片机信号单片机控制驱动芯片驱动电机M1正转使电池板跟随光线左转。光电检测B对右远离光线进行检测当光线远离电池板时B检测到并实时传输给单片机信号单片机控制驱动芯片驱动电机M1反转使电池板跟随光线右转。光电检测C与D对太阳垂直角度的变化进行检测并将检测到的光线变化信号传输给单片机单片机进行进一步处理后控制驱动芯片驱动电机M2的正反转从而实现电池板垂直角度的调整。光敏电阻的分布如图所示           图3.3光敏电阻模型        图3.4光电转换电路 3.3 AD转换模块电路设计 3.3.1AD转换模块 1.AD模块的组成 AD转换电路包括电压信号输入部分 AD转换部分和AD电压采样信号输出部分。 2.AD转换原理及电路设计 由光电转换电路所得到的信号为模拟信号所以采用AD转换器将模拟信号转换为数字信号然后通过单片机进行处理。模拟量可以是电压、电流等信号但在AD转换前输入到AD转换器的输入信号必须是电压信号。AD转换后输出的数字信号可以有8位、10位、12位和16位等。在本设计中采用的是PCF8591芯片PCF8591 是一种具有 I2C 总线接口的 8 位 A/D D/A 转换芯片在与 CPU的信息传输过程中仅靠时钟线 SCL 和数据线 SDA 就可以实现。 I2C 总线是Philips 飞利浦公司推出的串行总线它与传统的通信方式相比具有读写方便结构简单 可维护性好 易实现系统扩展 易实现模块化标准化设计 可靠性高等优点。   PCF8591 为单一电源供电2.5 6 V典型值为 5 VCMOS 工艺 PCF8591 有 4 路 8 位 A/D 输入属逐次比较型内含采样保持电路 1 路 8 位 D/A 输出内含有 DAC的数据寄存器 A/D D/A 的最大转换速率约为 11 kHz但是转换的基准电源需由外部提供。 PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程允许在同个I²C总线上接入8个PCF8591器件而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I²C总线以串行的方式进行传输。 图3.5 AD转换模块                    3.4步进电机驱动电路设计 3.4.1步进电机的介绍 前面介绍了光电转换电路AD转换电路和单片机电路部分的设计其最终的目的也就是要控制步进电机的正反转。步进电机是将电脉冲转化为角位移的开环控制执行机构。步进电机又称为脉冲电动机当步进驱动器接收到一个脉冲信号, 它就驱动步进电机按设定的方向转动一个固定的角度称为“步距角”它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量从而达到准确定位的目的同时可以通过控制脉冲频率来控制电机转动的速度和加速度从而达到调速的目的。其中步距角是对应一个脉冲信号电机转子转过的角位移用θ表示。θ360度转子齿数J*运行拍数以常规二、四相转子齿为50齿电机为例。四拍运行时步距角为θ360度/50*41.8度八拍运行时步距角为θ360度/50*80.9度。在负载能力范围内这些关系不因电源电压、负载大小、环境条件的波动而变化。因而可适用于开环系统中作为执行元件使控制系统大为简化。步进电动机可以在很宽的范围内通过改变脉冲频率来调速;能够快速反转和制动。它不需要变换可直接将数字脉冲信号转换为角位移很适合采用微型计算机控制。步进电动机是纯粹的数字控制电动机。它将电脉冲信号转变成角位移即给一个脉冲信号步动机就转动一个角度因此作常适合于单片机控制推动了步进电动机的发展为步进电动机的应用开辟了广阔的前景。 3.4.2步进电机及其控制方式 本系统用到的是四相步进电动机四相步进电动机是将电信号转变成角位移或线位移的开关控制元件其转速、停止位置只与脉冲信号的频率和脉冲数有关具有误差小易控制等特点广泛用于仪器设计。选用28BYJ48型四相八拍电机电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时它可以连续不断地转动。四相步进电机可以在不同的通电方式下运行常见的通电方式有单单相绕组通电四拍A-B-C-D-A双双相绕组通电四拍AB-BC- CD-DA-AB-八拍A-AB-B-BC-C-CD-D-DA-A。 3.4.3步进电机驱动电路 步进电机单靠交流供电或直流电源无法运动必须与驱动电路同时使用时才能发挥其功能步进电机驱动器(驱动电路)由决定换向顺序的控制电路(或称为逻辑电路)与控制电机输出功率的换相电路(或称为功率电路(power stage))组成。本图是步进电机驱动电路原理图。驱动电路通过ULN2803构成比较多的驱动电路8个NPN达林顿晶体管连接在阵列非常适合逻辑接口电平数字电路例如TTLCMOS或PMOS上/ NMOS和较高的电流/电压如电灯电磁阀继电器打印锤或其他类似的负载广泛的使用范围计算机工业和消费应用。所有设备功能由集电极输出和钳位二极管瞬态抑制。该ULN2803是专为符合标准TTL。该电路为反向输出型即输入低电平电压输出端才能导通工作。 基本工作原理如果1脚输入高电平1则16脚输出低电平0反之一样一般来说步进电动机的工作电压是5V对应芯片的9脚接步进电动机的工作电压5V。输入接上拉电阻即接单片机引脚。引脚输入低电平ULN2003就输出高电平正反转跟输入电平有关。电路图如图所示。 图3.6驱动芯片 3.5单片机外围电路设计 1、电源模块电路 其中J1是指开关按键 图3.7电源电路 2、按键电路 其中S1是手动和自动模式之间的切换默认为自动模式S2S3S4S5是手动模式下利用手动按键来控制步进电机的正反转。 图3.8按键电路 3、指示灯电路     系统默认为自动模式接通电源后LED1亮当按下S1按键时切换成手动模式LED2亮。        图3.9指示灯电路 3.6系统实物平台搭建 本设计要求机械部分主要由电池板支架转动轴底座和步进电机构成机械装置由电机驱动可使电池板在水平方向360度和垂直方向080度之间自由旋转。控制部分主要由STC89C51单片机系统构成。  跟踪系统机械结构大致为用螺丝把一个控制方位的步进电机控制在底座上然后在步进电机上安装转动轴上面连接水平方向步进电机的底座。水平步进电机也被用螺丝控制在垂直方向的底座上也安装了转动轴并且连接着太阳板和光敏电阻等部件。机机械结构的工作原理为用2个步进电机分别对高度角和方位角2个方向进行控制。跟踪器的方位轴垂直地平面控制水平方向另一根轴与方位轴垂直称为俯仰轴控制垂直方向最后两个步进电机分别与单片机控制系统连接具体是跟驱动芯片ULN2803连接而此芯片又与AD转换芯片连接从而控制步进电机。工作时太阳跟踪器根据太阳运动的位置通过方位轴转动改变方位角来改变水平方向通过俯仰轴作俯仰运动改变接收平台的倾斜角来改变垂直方向从而使太阳光线与太阳板垂直以达到跟踪的目的。 3.7本章小结 本章介绍了本系统各部分硬件模块的简介和工作原理主要模块有光电转换电路AD转换模块步进电机控制电路其中还有一些小部件比如按键模块LED显示模块电源模块复位电路晶振电路。最后介绍了实物平台的具体搭建。 第4章系统软件设计 本设计采用的是51单片机它是控制这个系统的核心部分软件部分也由单片机来操作其最终目的就是正确控制电机的正反转。本部分以单片机为核心部件将各个电路模块都连接起来使我们更清楚设计本意。可设上下左右四个方向的光敏电阻的电压值分别为U1、U2、U3、U4设精度为10 图4.1软件流程图 4.1按键部分子程序 按键电路默认状态为自动模式。 if(!ENTER)        {    Delay_ms(20);    while(!ENTER);    k;    } 4.2指示灯部分子程序 LED1输出高电平说明此装置在自动模式下。 if(k%2 0)          {   LED1 1;   LED2 0; 4.3主程序模数转换 数模转换是本设计的关键部分光电转换的电压值输入到AD模块后经过PCF8951芯片里的电压采样最后输出数字信号再把信息传送给单片机从而控制步进电机正反转。流程图如下      图4.2AD模块流程图 本设计AD转换模块用到的芯片是PCF8951它有4路8位A/D输入属于逐次比较型内含采样保持电路1路8位输出内含有ADC数据寄存器。意思是芯片内有四个通道所以分为以下程序的四种情况。  Case0是用来读取8951芯片第一通道所采集的到模拟量的值0x41是控制发送的字节IRcvByte(PCF8591)是用来接收读取AD转换的数据本设计在AD模块中利用芯片PCF8951输入和输出都进行了电压保持采样即系统内部自己进行了两次采样所以最后输出电压得需要IRcvByte(PCF8591)*2这才保证输入和输出数据相同确保了数据的准确性ADC是用来寄存每一通道输出的数据。以下通道同理。程序中最后一个if语句是指在手动模式下的操作。 for(i0;i8;i)              {    switch(AD_CHANNEL)    {     case 0: PCF8591_ISendByte(PCF8591,0x41);     AD_UpPCF8591_IRcvByte(PCF8591)*2;  //ADC0 模数转换1     break;            case 1: PCF8591_ISendByte(PCF8591,0x42);     AD_DownPCF8591_IRcvByte(PCF8591)*2;  //ADC1  模数转换2     break;       case 2: PCF8591_ISendByte(PCF8591,0x43);     AD_LeftPCF8591_IRcvByte(PCF8591)*2;  //ADC2 模数转换3     break;            case 3: PCF8591_ISendByte(PCF8591,0x40);     AD_RightPCF8591_IRcvByte(PCF8591)*2;  //ADC3  模数转换4     break;    }    Send_Hex(Table,4);    if(AD_CHANNEL3)    {     AD_CHANNEL0;     Table[0] AD_Up;    Table[1] AD_Down;    Table[2] AD_Left;    Table[3] AD_Right;     }   }   }   if(k%2 1)   {    LED1 0;    LED2 1;    AD_Up 0; //上    AD_Down 0;//下    AD_Left 0;//左    AD_Right 0;//右    }   4.4驱动电路子程序 设定10为精度值本设计中一共有上下左右四个光敏电阻在光照下就会产生电压上边电压大于下边电压或者两边电压值差大于10或者手动模式下按下向下的按键水平电机反转若下边电压大于上边电压或者两边电压值差大于10或者手动模式下按下向上的按键水平电机正转。同理左边电压大于右边电压或者两者差值大于10或者手动模式下按下向右的按键方位电机右转若右边电压大于左边或者两者差值大于10或者手动模式下按下向左的按键方位电机左转。具体程序如下 if(((AD_UpAD_Down)(AD_Down-AD_Up10))||(!UP))//上转   {    for(i0;i10;i)    {     for(j0;j4;j)     {      P0Motor_Up[j];      Delay_ms(10);     }      }    }   //   if(((AD_UpAD_Down)(AD_Up-AD_Down10))||(!DOWN))//下转   {    for(i0;i10;i)    {     for(j0;j4;j)     {      P0Motor_Down[j];      Delay_ms(10);     }      }   }   /   if(((AD_LeftAD_Right)(AD_Right-AD_Left10))||(!LEFT))//左转   {    for(i0;i10;i)    {     for(j0;j4;j)     {      P0Motor_Left[j];      Delay_ms(10);     }      }      }   //   if(((AD_LeftAD_Right)(AD_Left-AD_Right10))||(!RIGHT))//右转   {    for(i0;i10;i)    {     for(j0;j4;j)     {      P0Motor_Right[j];      Delay_ms(10);     }      }   }      Delay_ms(100);//延时可适当修改  } } 4.5 AD电压采样子程序 将光电转换电路中测得的电压值通过AD转换模块转换为数值采样再存到单片机内存里进行比较AD电压采样可以决定采样的精度下面介绍芯片内部原理。 I2C总线数据位的传输     它是由串行数据线SDA和串行时钟线SCL组成。连接到总线上的每一个器件都有一个唯一的地址而且都可以作为一个发生器或接收器SDA和SCL都是双向线路分别通过一个电阻连接到电源端。前提是连接到总线上的器件的SDA和SCL端必须是漏极或集电极开路型。I2C总线上的数据传输速率在标准模式下可达100Kb/s快速模式可达400Kb/s,高速模式下可达3.4Mb/s。连接到总线的器件数量只由总线的电容400PF限制决定。       I2C总线上每传输一个数据位必须产生一个时钟脉冲I2C总线上数据传输的有效性要求SDA线上的数据必须在时钟线SCL的高电平期间保存稳定数据线的改变只能在时钟线为低电平期间。在标准模式下高低电平宽度必须大于4.7us即每次时钟线需延时4.7us后才能改变。 2、I2C总线数据的传输   数据传输的字节格式要求发送到SDA线上的每一个字节必须为8位每次发送的字节数量不受限制从机在接收完一个字节后向主机发送一个应答位主机在收到从机应答后才会发送第二字节数据发送数据时先发数据的最高位。   数据传输中的应答相应的应答位由接收方从机产生在应答的时钟脉冲期间发送方主机应释放SDA线使其为高电平。在应答过程中接收方从机必须将数据线SDA拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平。   #include PCF8591.H         bit PCF859_ack;                 /*应答标志位*/     /*******************************************************************                      起动总线函数                函数原型: void  Start_I2c();   功能:     启动I2C总线,即发送I2C起始条件.   ********************************************************************/ void PCF8591_Start() {  PCF8591_SDA1;         /*发送起始条件的数据信号*/  _Nop();  PCF8591_SCL1;  _Nop();        /*起始条件建立时间大于4.7us,延时*/  _Nop();_Nop();_Nop();_Nop();      PCF8591_SDA0;         /*发送起始信号*/  _Nop();        /* 起始条件锁定时间大于4μs*/  _Nop();_Nop();_Nop();_Nop();         PCF8591_SCL0;       /*钳住I2C总线准备发送或接收数据 */  _Nop();_Nop(); } /*******************************************************************                       结束总线函数                函数原型: void  Stop_I2c();   功能:     结束I2C总线,即发送I2C结束条件.   ********************************************************************/ void PCF8591_Stop() {   PCF8591_SDA0;      /*发送结束条件的数据信号*/   _Nop();       /*发送结束条件的时钟信号*/   PCF8591_SCL1;      /*结束条件建立时间大于4μs*/   _Nop();_Nop();_Nop();_Nop();_Nop();   PCF8591_SDA1;      /*发送I2C总线结束信号*/   _Nop();_Nop();_Nop();_Nop(); } /*******************************************************************                  字节数据发送函数                函数原型: void  SendByte(UCHAR c); 功能:     将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对           此状态位进行操作.(不应答或非应答都使ack0)                 发送数据正常ack1; ack0表示被控器无应答或损坏。 ********************************************************************/ void  PCF8591_SendByte(unsigned char  c) {  unsigned char  BitCnt;  for(BitCnt0;BitCnt8;BitCnt)  /*要传送的数据长度为8位*/     {      if((cBitCnt)0x80)PCF8591_SDA1;   /*判断发送位*/        else  PCF8591_SDA0;                      _Nop();      PCF8591_SCL1;               /*置时钟线为高通知被控器开始接收数据位*/       _Nop(); _Nop();             /*保证时钟高电平周期大于4μs*/       _Nop();_Nop();_Nop();               PCF8591_SCL0;     }     _Nop();_Nop();     PCF8591_SDA1;                /*8位发送完后释放数据线准备接收应答位*/     _Nop();_Nop();        PCF8591_SCL1;     _Nop();_Nop();_Nop();     if(PCF8591_SDA1)PCF859_ack0;             else PCF859_ack1;        /*判断是否接收到应答信号*/     PCF8591_SCL0;     _Nop();_Nop(); } /*******************************************************************                  字节数据接收函数                函数原型: UCHAR  RcvByte(); 功能:        用来接收从器件传来的数据,并判断总线错误(不发应答信号)           发完后请用应答函数应答从机。   ********************************************************************/     unsigned char  PCF8591_RcvByte() {   unsigned char  retc;   unsigned char  BitCnt;      retc0;   PCF8591_SDA1;                     /*置数据线为输入方式*/   for(BitCnt0;BitCnt8;BitCnt)       {         _Nop();                    PCF8591_SCL0;                  /*置时钟线为低准备接收数据位*/         _Nop();_Nop();                 /*时钟低电平周期大于4.7μs*/         _Nop();_Nop();_Nop();         PCF8591_SCL1;                  /*置时钟线为高使数据线上数据有效*/         _Nop();_Nop();         retcretc1;         if(PCF8591_SDA1)retcretc1;  /*读数据位,接收的数据位放入retc中 */         _Nop();_Nop();       }   PCF8591_SCL0;       _Nop();_Nop();   return(retc); } /********************************************************************                      应答子函数 函数原型:  void Ack_I2c(bit a); 功能:      主控器进行应答信号(可以是应答或非应答信号由位参数a决定) ********************************************************************/ void PCF8591_Ack(bit a) {      if(a0)PCF8591_SDA0;              /*在此发出应答或非应答信号 */   else PCF8591_SDA1;   _Nop();_Nop();_Nop();         PCF8591_SCL1;   _Nop();_Nop();                    /*时钟低电平周期大于4μs*/   _Nop();_Nop();_Nop();     PCF8591_SCL0;                     /*清时钟线钳住I2C总线以便继续接收*/   _Nop();_Nop();     } /// /******************************************************************* DAC 变换, 转化函数                *******************************************************************/ bit PCF8591_DACconversion(unsigned char sla,unsigned char c,  unsigned char Val) {    PCF8591_Start();              //启动总线    PCF8591_SendByte(sla);            //发送器件地址    if(PCF859_ack0)return(0);    PCF8591_SendByte(c);              //发送控制字节    if(PCF859_ack0)return(0);    PCF8591_SendByte(Val);            //发送DAC的数值      if(PCF859_ack0)return(0);    PCF8591_Stop();               //结束总线    return(1); } /******************************************************************* ADC发送字节[命令]数据函数                *******************************************************************/ bit PCF8591_ISendByte(unsigned char sla,unsigned char c) {    PCF8591_Start();              //启动总线    PCF8591_SendByte(sla);            //发送器件地址    if(PCF859_ack0)return(0);    PCF8591_SendByte(c);              //发送数据    if(PCF859_ack0)return(0);    PCF8591_Stop();               //结束总线    return(1); } /******************************************************************* ADC读字节数据函数                *******************************************************************/ unsigned char PCF8591_IRcvByte(unsigned char sla) {  unsigned char c;    PCF8591_Start();          //启动总线    PCF8591_SendByte(sla1);      //发送器件地址    if(PCF859_ack0)return(0);    cPCF8591_RcvByte();          //读取数据0    PCF8591_Ack(1);           //发送非就答位    PCF8591_Stop();           //结束总线    return(c); } 4.6本章小结 本章主要介绍了整个系统中各个模块的软件设计及原理还有编写的程序主要模块的软件编程比如按键模块LED灯显示模块步进电机驱动模块AD转换还有AD电压采样模块。具体解释如上。 第5章结  论 5.1总结 本设计采取了传统的硬件和软件相结合的开发方法使用了STC89C51单片机作为整个系统的控制处理中心它具有硬件设计方便资源丰富软件部分程序指令快速简单驱动能力强等优点保证了该系统反应的快速性和灵敏性。从资料的查找到电路的设计从程序的编写到功能的基本实现一路坎坷。在设计过程中不断的发现问题同时也不断的解决问题越来越发觉制作实物相比整体设计要难一些实际制作过程中会遇到多种多样的问题要通过不断的测试和实验来解决。 5.2不足与进一步改进 当然本设计也存在很多不足之处比如程序算法的设计不尽完美各样器件的参数不太准确等等还有一些未发现的瑕疵之处都需要在调试和实践之后进行许多的改进。而且不能粗心大意一开始就因单片机一脚没连接导致单片机不起作用浪费时间又浪费精力因此做任何事都要细心要考虑的周全不能因为一时的失败而丧失信心从哪里跌倒了要从哪里爬起来只有有了这样的精神才会从问题中学到更多的知识为我们以后更好的发展奠定了基础。 最后本太阳能自动跟踪系统基本能满足设计的要求能实现按照所预先设计的思想运转各个模块电路也都运行正常但是由于本人的知识和水平的有限在机械设计部分知识的欠缺使得本系统在这方面有很大的不足。如果此系统能够在机械设计上有较多改进能够加上液晶显示模块的话相信本系统将会有很大的改进在性能上会有很大的提高。 参考文献 [1]李申生.太阳能[M].北京北京人民教育出版社1988:12-14. [2]王炳忠.太阳能—未来能源之星[M].北京高教出版社199020-21. [3]a b Philibert,Cedric(2005).”The  Present and Future use of Solar Thermal Energy as a Primary Source of Energy ”.IEA.Archived from the original on[M] 2011-12-12. [4]言惠太阳能21世纪的能源[J]上海大中型电机2004(04):16-18. [5]陈维李戬洪太阳能利用中的跟踪控制方式的研究[J]能源工程2003(03)18-21 [6] 孙茵茵,鲍剑斌,王凡.太阳自动跟踪器的研究[J].机械设计与制造,2005(7): 157-159 [7] 陈维李戬洪太阳能利用中的跟踪控制方式的研究[J]能源工程2003(03):18-21. [8] 欧阳名三余世杰,沈玉樑.采用单片机的太阳能电池最大功率点跟踪控制器[J]. 电子技术200212:49-51 [9] 王雪文.太阳能电池板自动跟踪控制系统设计[J].西北大学学报(自然科学版).  2004,34(2):163-164. [10]薛建国基于单片机的太阳能电池自动追踪系统的设计[J]长春师范学院学报2005243:26-30. [11]James F.Cox.Fundamentals of linear electronics:integrated and discrete. Cengage Learning. [M],91-. 26 June 2001[20 August 2011]. [12]朱定华单片机原理及接口技术[M]北京电子工业出版社2001:25-27. [13]周兴华光敏器件[J]电子世界1999(12):53-54. [14]范志刚光电测试技术[M]北京电子工业出版社2004:24-26. [15] 余泽通,宋长源.硅光电池板自动跟踪太阳机械装置的设计[J].新乡学院学报20083:70-71 [16] 李建庚一种智能型全自动太阳跟踪装置的机械设计[J]太阳能学报200324(03)330-333.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查网站服务器ip 被k简单asp网站源码

套餐管理 1 任务2 新增套餐2.1 需求分析和设计页面原型和业务规则接口设计setmeal和setmeal_dish表设计 2.2 代码开发2.2.1 根据分类id查询菜品DishControllerDishServiceDishServiceImplDishMapperDishMapper.xml 2.2.2 新增套餐接口SetmealControllerSetmealServiceSetmealSe…

淮安市广德育建设网站工友洗手粉网站建设中

声明:只是记录,初心是为了让页面更好看,会有错误,我并不是一个会记录的人,所以有点杂乱无章的感觉,我先花点时间把视频迅速过掉,再来整理这些杂乱无章的内容 计划是一天更新一点 待做的东西 完成博客记录把完成后的博客记录拆成单…

酒店网站建设必要性wordpress伪静态作用

一、贪心算法 贪心算法是一种解决优化问题的算法设计方法,其核心思想是在每一步选择当前状态下的最优解,从而希望最终达到全局最优解。下面将介绍贪心算法的原理、实现步骤,并提供C#和Java的实现示例。 1.1 原理: 贪心算法的原…

万峰科技著.asp.net网站开发四酷全书电子工业出版社做网站卖东西送上门

番茄钟番茄工作法是简单易行的时间管理方法。使用番茄工作法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事。直到番茄时钟响起,然后进行短暂休息一下(5分钟就行&…

有没有必要给企业做网站顺义哪有做网站厂家

Unable to start embedded Tomcat(已解决) 一、背景介绍二、原因分析2.1 网络上整理2.2 其他原因 三、解决方案 一、背景介绍 spring boot(v2.5.14) maven idea 启动项目 之前项目一直启动的好好的,都能正常运行。重启的时候突然就不能启…

网站建设的多少钱建网站盈利的几种方式

摘要:arduino环境下对esp32蓝牙编程时会遇到BLEUUID does not name a type错误,本文介绍解决方法。 硬件设备是安信可ESP32-S模组。 错误发生在代码最开始的地方,include了一个蓝牙设备头文件,然后定义了UUID,注意看&a…

医院网站可以自己做吗化工网站模板

Problem - B - Codeforces 题目大意:给物品数量 n n n,体积为 v ( 0 ≤ v ≤ 1 e 9 ) v_{(0 \le v \le 1e9)} v(0≤v≤1e9)​,第一行读入 n , v n, v n,v,之后 n n n行,读入 n n n个物品,之后每行依次是体…

2018年网站优化怎么做兰州seo网站排名

前端学习笔记 7:小兔鲜 准备工作 创建项目 创建项目: npm init vuelatest相关选项如下: 在src目录下添加以下目录: 别名路径联想 默认情况下在 VSCode 中输入import xxx from ...时不会启用路径联想功能,要启用需…

成都网站改版公司优设网app安卓下载

文章目录 一、文件流打开方式参数1、文件流打开方式参数2、文件指针3、组合打开方式4、文件打开失败 一、文件流打开方式参数 1、文件流打开方式参数 文件流打开方式参数 : ios::in : 以只读方式打开文件 ;ios::out : 以只写方式打开文件 , 默认打开方式 , 如果文件已存在则清…

小企业如何优化网站建设潍坊网站建设公司

R语言实验报告R语言实验报告R语言判别分析实验报告班级:应数1201学号姓名:麦琼辉时间:2016年11月28号1 实验目的及要求1) 了解判别分析的目的和意义;2) 熟悉R语言中有关判别分析的算法基础。2 实验设备及要求个人计算机一台&#…

好上手的做海报网站网站分站开发计划书

【OpenCV 例程200篇】87. 频率域钝化掩蔽 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4.2 频率域钝化掩蔽 简单地,从原始图像中减去一幅平滑处理的钝化图像,也可以实…

公司网站开发的工作内容怎么做网站黑链

c返回指针时候注意提防这对函数式编程并不会造成太大的影响,这真棒。 这是关于某些实践的警告,您很可能会将其应用于您的代码,而这是完全错误的! 。 高阶函数对于函数式编程是必不可少的,因此,谈论它们将帮…

如何搜索网站的内容西安seo网站设计公司

很好的一道模拟题,做起来很舒服 做模拟题重要的还是心态,能静得下心读题 思路: 读完题后,很直观的一个思路就是暴力,但2e5的O(n^2)过不去,怎么优化?? 就是转换 sum ∑a[i] (sum - S0) % m 0 结果 v S0 % m 可以这么转换 sum % m S0 % m 令sum % m k 那么就是…

浙江住房城乡建设厅网站用wordpress做淘宝客

塑料检查井配套开发的注塑成型井盖、井筒、井座——城市基础设施的新选择 随着城市化进程的加快,城市基础设施建设的品质与效率日益受到重视。在这个背景下,塑料检查井及其配套开发的注塑成型井盖、井筒、井座以其独特的优势,正在逐渐取代传…

免费手机网站空间软件开发各阶段时间比例

5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节,可以手动指定加载。 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式: 图形模式:红色表示一个条件跳转没有被采用,绿色表示这个条件跳转被…

名师工作室网站建设舟山 做企业网站

什么是线程模型: Java字节码运行在JVM中,JVM运行在各个操作系统上。所以当JVM想要进行线程创建回收这种操作时,势必需要调用操作系统的相关接口。也就是说,JVM线程与操作系统线程之间存在着某种映射关系,这两种不同维…

微信推送在哪个网站做静安区建设工程招标投标管理部门网站

定义 责任链模式是一种行为型设计模式,用于在对象间建立一条处理请求的链。它允许多个对象有机会处理请求,从而减少请求的发送者和接收者之间的耦合。在责任链模式中,每个接收者包含对另一个接收者的引用,形成一条链。如果一个对…

wap手机网站程序游戏交易网站怎么做

1、epubjs核心工作原理 1.1 epubjs的核心工作原理解析 epub电子书,会通过epubjs去实例化一个Book对象,Book对象会对电子书进行解析。Book对象可以通过renderTo方法去生成一个Rendition对象,Rendition主要负责电子书的渲染,通过R…

cdr做图时怎么找到网站的网站内容的设计

本文主要记录如何编译出windows版本的openss的lib库 1.下载openssl,获得openssl-master.zip。 a.可以通过github(网址在下方)上下载最新的代码、今天是2023.12.1我用的master版本,下载之后恭喜大侠获得《openssl-master.zip》 …

北京网站搭建服务seo软件定制

目录 前言 开篇语 准备工作 npm 概念 常见指令 项目中的包 创建项目 启动项目 服务器搭建 express 基本步骤 搭建应用 创建路由 监听端口 启动服务器 面试相关 结束语 前言 开篇语 本系列博客分享Node.js的相关知识点,本章讲解npm与服务器的简单…