太阳跟踪装置系统设计与制作

单片机 专栏收录该内容
6 篇文章 0 订阅

摘要
对绿色能源的开发和利用是响应我国节能减排重要决策,太阳能跟踪装置。此装置使用了单片机,外加两个步进电机,光电转换器和相关的外部元器件及传感器等等,其中太阳能电池板和云台都可以很好的完成360°旋转,使用两个步进电机也可以更精确的定位旋转角度,使用单片机控制,感光元器件采样,再进行电平对比来实现方位和角度的控制,当两者没有电平差的时候,电机静止运作,当有电平差的时候单片机控制步进电机运动,课题成果不仅可以用于太阳能发电,还可以用到其它的向光场所,如天文观测等具有较高的实用价值。
关键词:太阳能;步进电机;单片机控制;感光元器件

Abstract
The development and utilization of green energy is an important decision in response to China’s energy conservation and emission reduction, solar tracking device. This device USES a single chip microcomputer, plus two stepper motors, photoelectric converter and related external components and sensors and so on, including solar panels and yuntai can be very good to complete 360 ° rotation, using two step motor can also be more precise positioning of the rotation Angle, using single-chip microcomputer control, photosensitive components sampling, Again level compared to realize the position and Angle control, when there is no level difference between the motor still work, when the level difference single-chip microcomputer control stepping motor sports, subject results not only can be used for solar power, can also use the other to light place, such as astronomical observation has high practical value.

Key words: solar energy; Stepper motor; MCU control; Sensitive element

目录
摘要 Ⅰ
ABSTRACT Ⅱ
第一章 绪论 1
1.1 前言 1
1.2 研究太阳能追踪器的目的和意义 1
1.3 对太阳能的认识 1
1.4 太阳能国内外现状与发展趋势 2
1.5 本文的主要贡献与创新 2
第二章 系统设计与实现 4
第3章 系统原理和器件介绍 6
3.1系统功能设计 6
3.2 系统硬件系统分析设计 7
3.2.1 STM32单片机核心电路设计 7
3.2.2 28BYJ-48步进电机ULN2003驱动电路设计 8
3.2.3 按键电路设计 9
3.2.4 光照检测电路设计 10
3.2.5 TFT触摸彩屏1.44寸模块 11
3.2.6 太阳能发电路设计 13
3.2.7 TP4056锂电池充电模块电路设计 14
3.2.8 USB-5V升压模块电路设计 16
3.2.9 USB-5V升压模块电路设计 18
3.3 STM32 单片机系统软件设计 19
3.3.1编程语言选择 19
3.3.2 KEIL程序开发环境 20
3.3.3 STM ISP程序烧录 21
3.3.4 CH340串口程序烧写模块介绍 21
3.4 软件开发工具 23
第4章 全文总结与展望 24
4.1 全文总结 24
4.2 后期工作 24
致 谢 25
参考文献 26
附录1系统部分PCB 27
附录2程序设计 28

第一章 绪论

1.1 前言
随着时代的进步与科技的飞速发展,使得对能源的需求随之增加,对不可再生能源的过度依赖,从而使得不可再生能源的存储量急剧减少,一些不可再生能源(石油)被视为战略资源,据目前统计,煤炭、石油、天然气也会在岁月的实践中而日趋枯竭[1],消耗殆尽。显然,这些不可再生能源的产生不能满足人类的需求。 为了更好地实现可持续发展,本主题提出了一种可行的太阳跟踪解决方案。,可以大大提升对太阳能的利用,减少对不可再生资源的过度依赖。
1.2 研究太阳能跟踪器的目的和意义
为了解决人们对不可再生资源的过度依赖和对清洁能源的高利用率。提出设计一款零污染高效率的装置——太阳追踪器。通过电机,控制器,采光板光线传感器等元器件之间的相互配合,实现对太阳光照射最强的方位,实现全方位无死角跟踪,恰巧正好急需这样一款具有安全且绝对的无污染清洁能源,这也就很好的阐述了光能的可行性。——对此提出太阳跟踪装置设计与制作[2]。
1.3 对太阳能的认识
优点:太阳作为一个取之不尽用之不竭的能源。在《太阳能利用技术》[3]就有相关的提到,所到达地球表面能量等同于每秒向地球源源不断的投放了500万吨煤炭。阳光所到之处,皆为财富,免费使用的同时也不需要考虑任何的运输费用以及零污染等特性。缺点:即便如此的看似完美无缺,也存在着两个致命性缺点[4]:一是能流密度很小;二是太阳的光照强度也会因为(天气、白夜等)因素的不同而有着很大的差距,很难长时间维持在恒定值,这也在一定程度上大大的影响了使用效率[5]。
1.4 太阳追踪器国内外现状与发展趋势
国外太阳追踪器:对太阳能的使用在两千零四年到两千零六年太阳能的发电量都是惊人的4961MW[6],在一九九七年,美国的Blackace研制了单轴追踪器,热接收率提高了百分之十五…,后期围绕高效率,轻质量展开。在太阳能游艇、太阳能飞机、太阳能瓦片等方面得到运用,也见证了太阳能利用的高效率性[7]。
国内太阳追踪器:在应用市场上面得到了不断扩张,对于太阳能追踪器的利用那也是一个相当热门的谈话主题,途径多年的经验,将其用在了热水器、路灯以及西部计划、太阳能发电、太阳能供暖等等[8]。
更多的往往是采用单轴跟踪的方式,相比之下更需要多轴,实现全方位无死角跟踪。
1.5 工作内容
自动控制和手动调节工作方式:
“自动模式”:自动模式顾名思义也就是不受人为控制的一种自动追寻的过程。设备上电后,初始化完成,根据感光元件对光强度值得采集,后经过A/D转换将电信号转换成数字信号,根据数字信号的大小关系实行控制电机运动,当光照强度值下方大于上方,单片机发出控制指令,上端电机向下翻转;同理光照强度上方大于下面,单片机发出控制指令上端电机向上翻转;当且仅当上下光照强度均等时,上端电机不进行任何的相对翻转。左右方向转动,光照强度值右高于左方,单片机发出指令,控制下方电机左方向旋转相应角度;光照强度值左高于右时时,单片机发出控制指令,下方电机向左转动相应角度;当左右方位采光度也保持几乎均应的时候光照,那么下方位的第一个电机也将保持不动。

  1. 在手动模式下,使用键可以手动更改设备的状态。四个按钮对应于电动机的四种控制方式。上,下,左,右翻转动作。
  2. 设备接通后,系统最初为“自动模式”,这样可以更好的在不受人为干预的情况下实现对太阳能的最大接收。

第二章 方案选择与系统设计
2.1 方案选择
2.1.1 编译语言的选取
选项1:C语言
语言结构,丰富的运算符和程序在编写时既简单又紧凑。直接访问物理地址可实现直接硬件控制。该程序运行非常有效。
作为面向过程的C语言,它的特征在于对算法和数据结构的处理。效率是对输入执行算术处理并获得输出。
选择2:C++语言
C ++是面向对象的,它基于C语言扩展了对象设计的内容,以更好地适应现代编程。相反,C++具有更多优势,但是使用C++时更具有优势,但是在使用过程中C++的使用具有局限性,比如在嵌入式的的应用中,更多的依旧是采用C语言作为开发环境使用,C语言运行也较快。C++由于过于复杂,在这方面就稍逊一筹。
选择3:Java
Java是一种解释性语言,Java在运行程序时,运行前进行解释,使得速度会减慢;而C++会被直接编译系统所能识别的二进制代码形式,使得在运行速度更快。
从系统的复杂性出发来考虑,同时整个过程的计算量比较大,因此我选用了浮点数的计算方式,选用1作为整个系统编译方式。
2.1.2 控制系统总体方案选取
选择1:视日寻迹追踪模式
这种模式是基于天文学公式,通过公式对其理想化计算得出太阳在不同时候所处的不同方位和角度。后期依据当地的每日实际运行轨迹进行对应控制算法程序的编写来完成两个步进电机来达到俯仰和方位上的转动。优点是对外界环境的依赖小,弊端是不管外界环境是何种天气,它都会以同样的工作方式运动,增加了不必要的能耗和元器件的寿命磨损。
太阳俯仰角h和方位角A的两个位置参数,可表达如下所示:

δ倾角,Φ局部纬度,Ω太阳时角。(5-1)
选择2:光电跟踪模式
该模型的算法包括通过光敏传感器返回不同方向的太阳光强度。特定方法:模拟电池板[2]的不同之处在于,在四个方向上安装了光敏元件,并且有关外部光强度的信息的反馈通过光敏元件传输到核心板上的A/D转换。单片机再进行信息处理比对,当下面光照强度大于上面光照强度,STM32单片机就会直接驱动上端电机向下翻转;另外的三种不同的运动情况,也都是完全相同的控制比较方式。
通过两者的比较,选择2,简单易操作性,更适合被普及广泛使用,在同等使用条件下,最简方案,则是最优方案。
2.1.3主控系统选择
选择1:51单片机控制芯片的选择。主要使用设置寄存器变量实现,在程序的修改方面,也是相当的方便快捷,价格实惠,但在增加A/D转换的时候需要拓展,使得给硬件和软件增加负担,运行速度慢,在使用中保护能力欠佳。
选项2:使用大型可编程逻辑器件,例如FPGA由于FPGA基于SRAM,因此编程信息存储在SRAM中。严重的缺点是,信息在系统关闭后会丢失,并且下次必须重新配置。
选择3:ARM作为一种高性能嵌入式系统。考虑到方案的可实行性,STM32可以很好的解决数据处理和控制功能,十分适用于太阳能跟踪,断电后信息不会丢失,可无限次使用。
结合本次设计的任务要求,以及上述三种方案的相对比较,最后选用3更适合本课题的设计标准,具体采用STM32F103C8T6。
2.1.4电机选择
选择1:选择步进电机。步进电机的优势在于,您可以精确控制电机的步距大小和角度,以进行完整的实时跟踪。缺点是价格昂贵。
选择2:直流电机。价格便宜,通过减速机可以提高转矩,具有较大的负载,高精度电机控制直流电机无法满足设计要求。
步进电机是一种电磁机械设备,可将电脉冲转换为相应的角位移或线性位移。通过控制脉冲数,您可以直接控制启动和停止。启动速度快,步距角和速度仅取决于脉冲频率,不受外部因素的影响。因此,作为此设计任务的前提条件,我们选择了方案1作为本路线设计的驱动电机,以便更精确地控制角度值并更好地利用太阳能。
2.1.5电机驱动系统选择
选择1:L298专业电机驱动模块选型,这种类型的驱动模块易于使用和连接,并且可以同时驱动步进电机和直流电机。
选择2:用于三极管和其他分立元件的H桥。重点是优点,简单的控制方法和简单的结构。载流量小,由于元件离散,体积大,稳定性得不到保证。
选择3:采用集成芯片,ULN2003。
DarlingtonTubeULN2003是一种芯片,可驱动八个步进电机芯片,可用于两个步进电机。在实际使用中,它通常被用作为大型步进机动车辆提供动力的起点。
在本设计中,根据实际设计要求选择了选项3作为步进电机驱动系统。
2.1.5实体结构框架选择
选择1:两电机互相处以垂直状态,电机一是左右的转动而电机二是上下的转动,在不引入外界条件辅助设备的情况下会出现运动死角,从成本化出发是不可取的。
选择2:将两个电机垂直安装,改变为大于90°的安装,在不引入外部设备的情况下,可以很好的避开运动死角,从而可实现全方位无死角跟踪,综合上述情况选择方案二进行本次的实体结构设计。
2.2系统设计2.2.1 单片机构成如下图:

图2–2–1 单片机构成示意图
控制方式:第一步是将数据程序装置,输入设备将程序发送到CPU,并且相应地将每个程序发送到控制器,然后控制器完成相互命令的传输,最后作用在输出装置上,输出设备上显示的结果是原始程序的效果。
2.2.2 系统整体控制框图如下:

图2–2–2 系统整体控制框图
控制方式:完成整个驱动控制,第一步就是感光元件及光敏电阻传感器对外界光的采集,完成电压跟随,通过A/D转换,然后通过电压的比较,使用STM32F103C8T6单片机控制电机的驱动,最终完成不同电机在不同的光照强度情况下不同方向的运动,最后实现对光的最大化接收。

2.2.3 电机控制框图如下:

图2–2–3 电机控制框图
控制方式:通过光的采集,实现对电机运动方式的最终选择和控制。
1当第一组感光元件接收到的光强度值大于其他三个方向的光强度值时,电机完成电机在水平方向的正向旋转,并返回到原始状态。
2当第二组感光元件接收到的光强度大于其他三个方向的光强度时,电机在水平方向上完成电机反转并返回到原始状态。
3当第三组感光元件采集到光敏值大于另外任何方位的值,垂直方向电机做正向旋转。
4当第四组感光元件采集到光敏值大于另外任何方位的值,垂直方向反向运动。
感光元件在接收管的均匀照明下时,此时的照明强度几乎相等,这意味着电机的状态不移动。
2.2.4整体电路原理图如下:

图2-2-4 整体电路原理图
系统上电启动,感光元器件采集此时此刻的光照强度,进行A/D转换后单片机对光强值比较,发出指令控制步进电机相应运动【2】,初始默认状态是自动跟踪模式【3】。
手动模式,通过控制4个按键的高低电平来实现接通与断开,单个控制开关分别控制两个电机四种不同的状态运动。自动模式,自主读取检测结果并返回信号,当光强值差异值较大,单片机发出指令,控制步进电机相应转动,升压模块是为了给整个系统稳定供电而存在。

第三章 元器件介绍
3.1 系统硬件系统分析设计
3.1.1 STM32单片机核心电路设计
较低的功耗,在达到使用要求的情况下,可为实验之外提供更多的串口和扩展的应用电路【4】,对发展前景的选择多于51。
一、STM32优点:
ARM架构,Cortex-M3内核;功耗控;易于开发等。
二、STM32平台的选择可靠性:
存储空间和管脚应用大;引脚与软件的高度兼容性。
STM32F103C8T6图如下:

图3-1-1(a) STM32单片机核心板接口原理图
STM32单片机实物图如下图所示:

图3-1-1(b) STM32单片机核心板实物图
3.1.2 步进电机驱动电路设计
作为以脉冲次数控制的步进电机,可按照预定的角度和方向运动,通过位移量的控制从而使其达到对转动方向和转到角度的精确控制,以此达到对太阳光采集达到最大值化。
现如今步进电机在机械、数字电路模拟电路等都已经涉及。步进电机执行元件,应用在多种自动化控制。
在系统中,选择了4期5线的5V-步进电机。

  1. 型号为28BYJ-48。
  2. 直径:28mm
  3. 电压:5V
  4. 步进角度:5.625 x 1/64
  5. 减速比:1/64
  6. 单个重:0.04KG
    具体驱动电路原理图如下:

图3-1-2(a) 驱动电路原理图

图3-1-2(b) 驱动电路原理图

图3-1-2© 步进电机实物图
3.1.3 按键电路设计
按键控制相当于一种电子开关,当S1受外力按下时,电路导通从而达到人机交互的效果。按键时,引脚电平发生变化,由高变低,系统开始传输手动输入指令,电机运动。
原理见下图:

图3-1-3 按键电路原理图
3.1.4 光照检测电路设计
本系统的感光元件是行业最新出现的光敏电阻元件,根据本系统所使用的光敏电阻,以及它的特殊性能,在当今高速发展的现代社会中,它将得到更广泛的应用。通过四个光敏电阻的串联,既能达到分压的效果,又对整个系统起到保护作用。光敏电阻原理图如下:

图3-1-4 光敏电阻原理
3.1.5 TFT触摸彩屏1.44寸模块
TFT,也被称为电影场效应晶体管。由点脉冲控制,这相当于为每个像素设置了一个控制开关。因此,每个节点都处于完全独立的状态,但也可以连续控制,连续控制可以提高显示器在使用中的反应速度等。
一、该模块有如下特点:

  1. 128×128分辨率。
  2. 1.44寸的彩显示器。
  3. 色彩深度:16位。
    二、接口定义
    表 3-1-5 接口定义表
    管脚顺序 管脚定义 功能阐述
    1 GND 电源接地端
    2 VCC 电源正极
    3 SCL SPI时钟输入
    4 SDA SPI数据输入
    5 RES 屏得复位
    6 DC 命令/数据选择
    7 CS SPI片选输入
    8 BL 背光控制输入
    三、模块实物图如下图所示:

图3-1-5 显示屏

原理图如下:

图3-1-5 显示屏原理图
3.1.6 太阳能发电电路设计
太阳辐射能要通过光电效应或化学效应实现转换,那么我们首先就要使用到可以吸收太阳光的太阳能大多数面板(Solarpanel)仍然是由“硅”。对于普通的干电池或充电电池,重点是节能环保零污染
特点:超白玻璃作为高透明性的低铁玻璃,透光率达到了惊人的91.5%。
组件在自然情况下是全部裸露,而空气中的容易色变,从而影响组件的透光率。
晶体硅主要是分为多晶和单晶料是最主要的光伏材料,市场中占比也是惊人的达到了90%以上,然而在今后较长时间内也是主要是以硅作为太阳能电池板的主要材料,可将其相当不错的未来可预见性。
实物图如下图所示:

图3-1-6(a) 太阳能电池板实物图
其电路接口原理图如下图所示:

图3-1-6(b) 太阳能电池板发电接口原理图
3.1.7 TP4056锂电池充电模块电路设计
TP4056锂电池充电模块,适用于USB电源和与适配器,PMOSFET作为架构,再使用了防倒充电电路,因此不需要外接隔离二极管,防止电回流,TP4056作为恒定电流/电压可持续性充电模块,作为本次选择的有力据。为了防止因为高温和大功率状态下对芯片的影响,选用TP4056可完成对电流大小的可控调节。
本模块的特点:

  1. 外设通过USB直接通电。
  2. IN+和IN-针供电。
  3. 输入电压:4v-8v。
  4. 充电红灯点亮,充电后蓝灯点亮。
    TP4056锂电池,并联电容器,稳定电压输出滤波功能。
    充电原理图见下:

图3-1-7(a) TP4056锂电池充电模块接口原理图
TP4056锂电池充电模块实物图如下图所示:

图3-1-7(b) 锂电池充电模块实物图
3.1.8 USB-5V升压模块电路设计
USB5V升压模块,高效输出以及恒定频率。可提供中等电压输出规格。本设计系统采用升压模块将电压从3.7V升压到5V
实物图如下:

图3-1-8(a) 模块5V跳线取线图
在焊接USB-5V升压模块时,电源输入端子可以直接与电源线焊接,也可以单排插脚焊接后插入PCB板或通用板。
下图为USB-5Vboost。开关闭合,升压模块得电工作,锂电池由之前的 3.3V升压到5V。增压模块失电,减小电压波动,使电压输出更加稳定。接口原理图如下:

图3-1-8(b) USB-5V升压模块接口原理图
USB-5V升压模块实物图如下图所示:

图3-1-8©USB-5V升压模块实物图
3.1.9 分压电路设计
串联分压:
在串联电路,常数是电流处处相等,每个支路的电压之和就是电压之和,也就是说支路的电压从头到尾都小于总电压,所以称为分压。
采集电压信号大于光电转换模块要求上线值时,需要采用分压器的形式来解决电压过高引起的溢出问题。
3.2 STM32 单片机系统软件设计
3.2.1 Keil程序开发环境
C语言逻辑结构清晰,在可维护性、结构、可读性和功能上易于学习和使用。Keil有一套完整的开发方案,包括c编译器,链接器和图书馆管理,我们使用集成开发环境(Vision)把各个部分放在一起。选择Keil通过以上的基本解释,即最后的选择,最好的选择。要运行Keil的软件,需要WIN98、WINXP和其他操作系统。Keil有以下特点
1) keil软件完全可以满足对WIN7多种操作系统的使用要求。
2) Keil达到了从编辑到编译以及调试。
Keil界面如下:

图3-3-2 Keil uVision5开发界面图
3.2.2 STM ISP程序烧录
STM ISP是用于编程的烧录软件可以直接下载单片机使用的程序,并完全支持编程和程序验证。单片机开发板、下载器和PC连接后,第一步是打开软件并选择相应的串口号,第二步是选择目标程序文件的相应端口,最后鼠标单击“开始变成(P)就可以完成对程序的下载”。
具体下载界面如下图所示:

图3-3-3 烧录软件下载界面
3.2.3 CH340串口程序烧写模块介绍
CH340串口烧成模块通过USB接口连接,可以用任何笔记本电脑完成STC系列单片机的程序烧成。以其高性能、低成本的绝对优势,STC系列单片机无疑是本项目的最佳选择。
一、 CH340串口烧写模块特点:
1 它支持USB的多种通信,而不是单一的固定通信。
2 完全支持WIN98、VISTA、WIN7等常用操作系统,适应性强。
3 采用USB接口直流电源。
4 在对芯片进行编程时,它可以自己供电,也可以从USB供电。
5 新程序的编写不影响目标板的程序运行。
6 它有一个广泛的投影范围,并支持整个系列的芯片燃烧在STC。
7 输出电压接口使用编程器提供3.3V和5V电压。
8 更快更稳定。
模块如下图所示:

图3-3-4(a) CH340串口烧写模块
二、CH340串口烧写模块引脚说明

  1. TXD 接单片机的RXD引脚
  2. RXD 接单片机的RXD引脚
  3. GND 接GND。
    三、CH340串口烧写模块
    具体接线图如下表所示:

表3-4-4(b) CH340串口烧写模块与单片机接线
CH340模块 单片机开发板
TXD 引脚PA10
RXD 引脚PA9
GND GND
3.4 软件开发工具

  1. STC11F16XE单片机开发集成环境:Keil
  2. 单片机下载上位机软件:STM ISP下载器MCUISP
  3. PCB绘图软件:dxp
  4. 流程图绘画软件:WPS Office

第四章 系统测试
4.1 软件调试
为了防下载程序出错,在调试前,我们需要特别留意,所编写程序在对单片机选型,是否准确无误,串口也要正确,本设计所使用的单片机型号为STM32F103c8t6,使用keil软件作为编程工具,程序完成后生成。hex文件,现在编译程序,当软件编译完成后,下方显示检查无错误,接着就是程序的调试部分,调试完成,生成最后的最终程序其型号选择如图4-1所示。Keil编译程序成功如图4-2所示。

图4-1 Keil单片机型号选择

图4-2 Keil编译成功
程序编译结束,切换输出选项卡,生成.hex文件,确认保存路径,再次重新编译和组建程序,即可生成.hex文件。Keil生成.hex文件如图4-3所示。最后将程序从Keil传输到STM32F103c8t6最小系统

图4-3 Keil生成.hex文件
4.2 系统整体调试
利用软件AD15将原理图绘制成PCB板。绘制PCB板过程是:来到了软件第一步调用画好的原理图,第二个电路设计完成,点击设计菜单栏,选择Update PCB Document PCB1.PcbDoc;第三步点击验证变更,将原理图导入PCB,正常生成PCB,个体图PCB完成后,自动布线,整体的PCB完成。利用keil软件下载器将程序导入32单片机后,按照预定要求进行调试。

图5-6 布置好线的PCB图
第五章 全文总结与展望
5.1 全文总结
整个系统使用了STM32F103C8T6MCU由核心板、太阳能电池板、锂电池充电、稳压电路、光敏采集电路、驱动电路、调压模块、步进电机关键电路组成。整个系统由光敏采集板和两块板组成,相应的连接线相互连接。其中,光敏采集板主要放置在光敏传感器模拟太阳能板的操作。此外,主控板在步进电机的显示、上电管理、按键控制和相关驱动方面也发挥了作用。
具体控制展现如下:
一、太阳能板收集太阳能,同时转换光能和电能。通过电路的稳压过程,将电能传输到备用电池进行储能,并通过升压模块和电源模块将电能存储在干锂电池中,稳压模块稳压到5V给整个系统供电,有单独的电源控制开关可以进行电源的通断控制。在给设备系统进行上电后,系统最初的默认形式为随太阳运动而运动的“自动模式”,还有就是可以通人为控制改为“手动模式”[9]。
二、 系统上电时,无论是自动还是手动,光敏电阻都会采集光强度并完美地显示在显示屏上,显示效果最佳,并且在显示屏上面进行完美的显示出来,其中显示的效果为上、下、左、右四个方位。通过两个步进电机驱动来完成上下左右运动,将两个步进电机焊接在一块形成了一个角度多自由度的整体。两个电机都是通过连接线与主板进行的连接,通过光敏电阻对光强度的采集获得四个方位的不同关照强度值,最后通过与预计值的比较,最后来确定电机的运动轨迹[10]。
三、其中以“自动模式”为例:在自动追寻的过程中,会自动判断光的强度的大小,若下面光照强度大于上面光照强度,STM32单片机就会直接驱动上端电机向下翻转;以便于在下午太阳西落的时候,获得更多的关照,若上面光照强度大于下面光照强度,STM32单片机就会直接驱动上端步进电机向上进行运动[11];若上下两个方位的光照强度均是大小相差无几,那么上端步进电机则不进行任何的动作。接下来就是对于当上下光照均匀左右运动的情况,若右方位的光照强度大于左方位的情况下,STM32单片机就直接驱动下方位第一个步进电机向左方位一定角度转动[12];若左方位的光照强度大于右方位的光照强度,STM32单片机就直接驱动下方位第一个步进电机向左方位进行运动[13];当左右方位采光度也保持几乎均应的时候光照,那么下方位的第一个电机也将保持不动。那么此时此刻设备的状态将是完全的禁止,STM32单片机将不对电机给出任何的运动指令[14]。
三、也可以切换为“手动模式”状态进行使用手动按键完成设备状态切换。四个按钮用于控制电机:上、下、左、右。通过点动的方式来控制驱动步进电机的实际运动[15]。
四、当太阳能收集有限时,此时使用外部电源USB充电模块对其进行锂电池上电,以保障系统的正常运行[16]。
1.44英寸显示屏显示光敏电阻采集的光强值范围为0-1000。在实际应用中,无论是自动模式还是手动模式,光敏电阻都能从上、下、左、右方向收集光。它是通过步进电机的两个不同维度来实现的,即上下滚动和左右转弯。上端步进电机与光敏采集板直接像粘接,连接线直接焊接而成。当然了对其的封装也是很有必要的完善过程。
5.2 后续工作展望
它在原有的基础上,还可以与外部设备配合使用,如利用电厂的储能,向鱼塘的制氧机供电,通过电力实现步行关灯,蓝牙控制路灯等
致 谢
时间很快,毕业设计已经开始接近尾声,几年的大学学习生涯即将告一段落,在后期的研究生生涯中希望可以得到更好的视野拓展。通过本次的设计,问题也是层出不穷,也是这些困难让我学会了成长,以前几乎自己一个人没有单独做过设计,因此也遇到C程序的编写这一大困难。慢慢的一切都会因人而解,吴导师的大力帮助,是很重要的一个环节。
从这次的毕业设计中,深刻的体会到学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次毕业设计中的最大收获。硬件只有多做,自己多搭建电路来调试才能真正的学得知识。
首先,我要感谢我的导师对我的悉心指导。他为我的毕业设计指导尽心竭力,他渊博的知识、平易近人的性格以及在设计上敏锐的洞察力,使我受益非浅。在整个毕业设计期间,老师时不时提醒着我,要做什么了,听在耳里,看在眼里更是记在心里。从最初的选题到后期的完成,少不了导师的教导。占用了老师的宝贵时间,得以最后完成论文。
在大学的几年学习生活中,感谢学院也感谢各位老师让我们有了获取知识的平台,结识了一帮有着共同爱好的朋友,我们大家共同学习,为完成毕业设计打下了基础——感谢得以与大家相识、相知、相惜。
谢谢大家!

参考文献
[1] 张翠华,范小振.《能源新视野》. [M]. Boston: Artech House, 2017 , 5-8
[2] 扎西顿珠 袁超 胡石峰.《黑龙江科学》. [M].2019年第24期28-31,共4页
[3] 罗金玲.《电脑编程技巧与维护》.[M].2015年第22期31-32,37共3页
[4] 武奇生.《基于ARM的单片机应用及实践》.[M].机械工业出版社12页
[5] 郭欣. 太阳能双轴跟踪系统的研究与设计[J].装备制造与教育, 2017, 03 , 6-9
[6] 杨亚龙. 太阳能电池板自动追光系统研究与实现[D]. 长安大学, 2014 , 5-6
[7] 高绪昊. 太阳能跟随系统设计[J].硅谷, 2013 02
[8] 刘卿卿,俞强,赵毛毛,王竞雄. 基于STM32的光电式太阳跟踪系统设计[J]. 仪表技术与传感器, 2017, 01
[9] 李仁浩,龚思敏,杨帆. 基于单片机控制太阳能智能跟踪控制系统的设计[J]. 仪表技术与传感器.2015(04) :21-23
[10] 叶伟慧,廖才,石金强,陈国康.基于阳光方位探测器的太阳能收集板姿态调节系统 [J]. 仪表技术与传感器, 2011(03) :156-160
[11] 刘卿卿,俞强,赵毛毛,王竞雄.基于STM32的光电式太阳跟踪系统设计[J].仪表技术与传感器.2017(01)
[12] 李仁浩,龚思敏,杨帆,刘松,李小兵.基于单片机控制太阳能智能跟踪控制系统的设计[J].仪表技术与传感器.2015(04)
[13] 王定玲,夏美娟.太阳能自动跟踪系统设计[J].江苏科技信息. 2017(02)
[14] 申来明,杨亚龙.一种利用单片机实现太阳跟踪的设计方法[J].现代电子技术. 2014(10)
[15] 许义泉,王燕昌,王子文,慕松.赤道坐标系下新型太阳能自动跟踪装置设计[J].机械设计与制造. 2013(09)
[16] 闫云飞,张智恩,张力,代长林.太阳能利用技术及其应用[J].太阳能学报. 2012(S1)
[17] 王阳.太阳能电池板追光系统的研究[D].沈阳工业大学.2017
[18] Du Xiaoqiang,Li Yuechan,Wang Pengcheng,Ma Zenghong,Li Dangwei,Wu Chuanyu. Design and optimization of solar tracker with U-PRU-PUS parallel mechanism [J] IOP J.MECHMACHTHEORY.2020.104107
[19] Qingli HaidongLiu. Design of Solar Energy Automatic Tracking Control System Based on Single Chip Microcomputer [J]. IOP Conference Series Earth and Environmental Science March 2019
[20] Du Xiaoqiang, Li Yuechan, Wang Pengcheng, et al. Design and optimization of solar tracker with U-PRU-PUS parallel mechanism[J]. 2021, 155:104107

附录Ⅰ系统PCB如下:

附件图 0–1主控板PCB

附件图 0–2光敏PCB

附录II部分程序
#include “my_include.h”

char dis0[25];//液晶显示暂存数组
char dis1[25];//液晶显示暂存数组

#define F_SIZE 16
#define MyLCD_Show(m,n,p) LCD_ShowString(LCD_GetPos_X(F_SIZE,m),LCD_GetPos_Y(F_SIZE,n),p,F_SIZE,false)

#define RONGCHAZHI_UD 500 //容差值
#define RONGCHAZHI 500 //容差值

#define ZHUANDONG_ZZ 50 //转动一个正角度
#define ZHUANDONG_FZ -50 //转动另一个方向转动

int lighVla_left = 0;//ad采集结果 1
int lighVla_up = 0;//ad采集结果
int lighVla_right = 0;//ad采集结果
int lighVla_down = 0;//ad采集结果
float batteryVolt = 0;//锂电池电压ad采集结果
float BatCap=80; //容量初始化

unsigned char disFlag = 0;//更新显示
unsigned char setMode =0;//设置模式
unsigned char rememberMode =0xff;//记录上一次设置状态

int main(void)
{
unsigned char disYplace=0; //显示所在行递增变量
USARTx_Init(USART1,9600);
// My_LED_Init();
// My_RTC_Init(false);
My_ADC_Init(ADC1);
My_KEY_Init();
My_StepMotor_Init();

LCD_Init();   //tft初始化	  	 

// TP_Init(); //校准已经包括再此函数中 先执行LCD_Init(); 触摸校准调用显示

LCD_Clear(Color16_BLACK);//清全屏
BACK_COLOR=Color16_BLACK;
FRONT_COLOR=Color16_LIGHTGRAY;	disYplace=0; //显示所在行递增变量		
MyLCD_Show(2,disYplace++,"双轴追光系统");//显示	
FRONT_COLOR=Color16_LIGHTBLUE;
MyLCD_Show(1,disYplace++,"光照参数: ");//显示	
MyLCD_Show(4,disYplace++,"上: ");//显示	
MyLCD_Show(1,disYplace,"左: ");//显示	
MyLCD_Show(9,disYplace++,"右: ");//显示	
MyLCD_Show(4,disYplace++,"下: ");//显示	
MyLCD_Show(1,disYplace++,"设置: ");//显示	
		
while(1)
{
	My_KeyScan();
	if(KeyIsPress(KEY_5))
	{
		if(setMode !=0 )setMode =0;//自动模式
		else setMode=1;//手动模式
	}
	
	switch(setMode)
	{
		case 0: //自动模式

					if((lighVla_left - lighVla_right)>RONGCHAZHI_UD ) //调整向强光方向转动
					{My_StepMotor_RotateAngle(0,ZHUANDONG_ZZ);}
					else if((lighVla_right - lighVla_left )>RONGCHAZHI_UD )//调整向强光方向转动
					{My_StepMotor_RotateAngle(0,ZHUANDONG_FZ);}
					else {My_StepMotor_Stop(10);}
					
					if((lighVla_up - lighVla_down)>RONGCHAZHI_UD ) //调整向强光方向转动
					{My_StepMotor_RotateAngle(1,ZHUANDONG_ZZ);}
					else if((lighVla_down - lighVla_up )>RONGCHAZHI_UD )//调整向强光方向转动
					{My_StepMotor_RotateAngle(1,ZHUANDONG_FZ);}		
					else  {My_StepMotor_Stop(10);}		
					break;
		case 1: //手动模式							
					if(KeyIsPressed(KEY_1))//按键按下
					{
						My_StepMotor_RotateAngle(0,ZHUANDONG_ZZ); //转动 度数 正值一个方向 负值另一个方向
					}
					else if(KeyIsPressed(KEY_3))//按键按下
					{
						My_StepMotor_RotateAngle(0,ZHUANDONG_FZ);//转动 度数 正值一个方向 负值另一个方向
					}		
					else {My_StepMotor_Stop(0);}			

					if(KeyIsPressed(KEY_2))//按键按下
					{
						My_StepMotor_RotateAngle(1,ZHUANDONG_FZ);//转动 度数 正值一个方向 负值另一个方向
					}						
					else if(KeyIsPressed(KEY_4))//按键按下
					{
						My_StepMotor_RotateAngle(1,ZHUANDONG_ZZ);//转动 度数 正值一个方向 负值另一个方向
					}
					else {My_StepMotor_Stop(10);}	
					break;
		default: break;		
	}

	lighVla_left =1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_0)/4096; //读取ad值 转化为0-1000
	lighVla_up = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_1)/4096; //读取ad值 转化为0-1000
	lighVla_right = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_2)/4096; //读取ad值 转化为0-1000
	lighVla_down = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_3)/4096; //读取ad值 转化为0-1000
	
	if(disFlag == 1)//更新显示
	{
		disFlag =0;
		FRONT_COLOR=Color16_LIGHTBLUE;	disYplace=2; //显示所在行递增变量		
		sprintf(dis0,"上:%d  ",lighVla_up);//打印
		MyLCD_Show(4,disYplace++,dis0);//显示			
		
		sprintf(dis0,"%d ",lighVla_left);//打印
		MyLCD_Show(4,disYplace,dis0);//显示				
		sprintf(dis0,"%d ",lighVla_right);//打印
		MyLCD_Show(12,disYplace++,dis0);//显示	
		
		//**All notes can be deleted and modified**//
		if(rememberMode != setMode)
		{
			rememberMode = setMode;//记录设置模式
			if(setMode == 0)MyLCD_Show(8,disYplace++,"自动  ");//显示		
			else if(setMode == 1)MyLCD_Show(8,disYplace++,"手动  ");//显示		
		}
		
		batteryVolt  = My_ADC_GetValue(ADC1,ADC_Channel_4)*3.3/4096 *2 ;//锂电池电压

		if(batteryVolt>4.15)	//电压值对比
		{BatCap = 0.99;}//容量			
		else if(batteryVolt<3.4)
		{BatCap =0;}
		else
		{BatCap = (batteryVolt-3.4)/(4.15-3.4);}//正常情况下计算比例 

		if(BatCap<0.45){FRONT_COLOR=Color16_RED;	}
		sprintf(dis0,"B:%3.1fv Q:%02d%% ",batteryVolt,(int)(BatCap*100));		//打印					
		MyLCD_Show(1,6,dis0);//显示					
	}
}											    

}

  • 3
    点赞
  • 0
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

毕业论文-小型斯特林发电机的设计 摘要 太阳能热发电系统具有节能、环保、发电效率高、单位功率密度高、发电成本低、适用地域广、不排出二氧化碳,无水的消耗等特点,已逐步成为当今社会开发和应用的热点。斯特林太阳能热发电装置以斯特林发动机作为原动力机来进行热电交换,利用聚焦太阳光产生高温热源,进而推动热气机(斯特林发动机)输出电能,因为具有聚光能力强、热发电效率高,因此在各类聚焦太阳光热发电技术中的热电转换效率最高,成为可再生能源利用的热点。斯特林发动机作为往复式外燃机的一种,其理论热力学循环称为斯特林循环。本文设计的小型斯特林热发电系统主要由聚光镜,跟踪控制装置,热电转换装置和负载组成。该系统的热电转换部分的基本工作原理为工质从高温热源吸收热量,膨胀做功,向低温热源传递热量并收缩,然后再从热远处吸收热量,依次往复循环。在每一轮的循环过程中,工质将吸收的热能转变成机械能,而工质做功过程中通过推动活塞的往复运动从而驱动发电机的转动从而将机械能转换为电能。此外,为了加强对太阳光的采集,我们还设计太阳跟踪聚光系统。本文通过对斯特林发动机的性能特性的研究,阐述和分析了斯特林发动机的结构类型及工作原理,设计并制造了一套斯特林发动机模型和太阳能追踪控制系统组成的小型发电系统,并利用该系统进行了相关实验以及相应的实验分析。 关键词:斯特林发动机;太阳能热电转换;双轴跟踪系统太阳光追踪控制器
©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值