资讯详情

太阳能板控

太阳能跟踪装置是响应我国节能减排的重要决策。该装置采用单片机、两步进电机、光电转换器及相关外部部件和传感器,其中太阳能电池板和云台可完成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

第一章 绪论 

1.1 前言 随着时代的进步和科学技术的快速发展,对能源的需求增加,对不可再生能源的过度依赖,使不可再生能源的储存急剧减少。一些不可再生能源(石油)被视为战略资源。据目前统计,煤炭、石油和天然气将在多年的实践中日益枯竭[1]。这些不可再生能源的产生显然跟不上人类的需求。为了更好地实现可持续发展,本课题提出了可行的太阳跟踪方案,可以大大提高太阳能的利用,减少对不可再生资源的过度依赖。 1.2 研究太阳能跟踪器的目的和意义 为了解决人们对不可再生资源的过度依赖和对清洁能源的高利用率。提出设计零污染高效装置-太阳追踪器。通过电机、控制器、照明板光传感器等部件之间的相互配合,实现阳光照射最强的方向,实现全方位无死角跟踪,只是迫切需要这样一个安全、环保、高效、取之不尽的特点,也很容易获得,如风能和潮汐能是绝对无污染的清洁能源,这很好地阐述了光能的可行性。——提出了太阳跟踪装置的设计和制造。 1.3 了解太阳能 优点:太阳是一种取之不尽的能源。《太阳能利用技术》[3]中提到,到达地球的表面能量相当于每秒连续向地球投放500万吨煤炭。阳光无论走到哪里都是财富,免费使用都不需要考虑任何运输成本和零污染。缺点:即便如此完美,也有两个致命的缺点[4]:一是一是能流密度很小;第二,由于(天气、白夜等)因素的不同,太阳的光强也会有很大的差距,很难长时间保持在恒定值,这也在一定程度上大大影响了使用效率[5]。 1.4 国内外太阳跟踪器的现状和发展趋势 国外太阳能追踪器:太阳能在2004年至2006年的发电量惊人的4961MW[6]1997年,美国Blackace单轴追踪器的热接收率提高了15%…,后期以高效、轻质为重点。用于太阳能游艇、太阳能飞机、太阳能瓷砖等。,也见证了太阳能利用的高效率[7]。 国内太阳能追踪器:在应用市场上不断扩大,使用太阳能追踪器也是一个非常受欢迎的对话主题,多年的经验,用于热水器、路灯和西部规划、太阳能发电、太阳能加热等[8]。 更常用的是单轴跟踪,相比之下更需要多轴,实现全方位无死角跟踪。 1.5 工作内容 在不同的条件下,提出了两种工作方法:自动控制和手动调整:

  1. 顾名思义,自动模式是一种不受人为控制的自动追求过程。设备上电后,初始化完成,值得根据感光元件采集光强度A/D转换将电信号转换为数字信号,并根据数字信号的大小关系控制电机运动。当光强值大于上方时,单片机发出控制指令,上电机向下翻转;同样,光强度大于下方,单片机发出控制指令,上电机向上翻转;当上下光强度相等时,上端电机不进行任何相对翻转。左右转动,光强值高于左,单片机发出指令,控制下电机左转相应角度;当光强值高于右时,单片机发出控制指令,下电机向左转动相应角度;当左右照明保持几乎平均时,下电机保持不动。
  2. 使用按钮手动切换手动模式状态,以完成设备状态。四个按钮对应于控制电机:上、下、左、右翻转动作。点击控制驱动步进电机的实际运动。
  3. 设备系统上电后,系统最初是自动模式,可以更好地在不受人为干预的情况下最大限度地接收太阳能。

第二章 方案论证和系统设计 2.1 方案论证 2.1.1 选择编译语言 方案一:C语言 语言结构丰富,操作符丰富,编写过程简洁紧凑;通过直接访问物理地址,实现硬件的直接控制;使程序在执行中高效。 C语言作为一种面向过程的语言,在算法和数据结构上处理得很好。高效率是操作输入以获得输出。 方案二:C 语言 C 在C语言的基础上,对象设计的内容对象设计的内容,使其更符合现代程序设计。相比之下C 但在使用过程中更有优势C 例如,在嵌入式应用中,C语言仍被用作开发环境,C语言操作也很快。C 因为太复杂,在这方面稍逊一筹。 方案三:Java Java它是一种解释性语言,Java在操作过程中,在操作前进行解释,使速度减慢;C 可以直接编译系统识别的二进制代码形式,使运行速度更快。 考虑到系统的复杂性,整个过程的计算量相对较大,所以我选择了浮点数的计算方法和方案1作为整个系统的编译方法。 2.1.2 选择控制系统总体方案 方案1:视日追踪模式 这种模式是基于天文公式,通过公式理想化计算太阳在不同时间的不同方向和角度。后期根据当地日常实际运行轨迹编制相应的控制算法程序,完成两个步进电机,实现俯仰和方向旋转。优点是对外部环境的依赖较小,缺点是无论外部环境是什么天气,都会以同样的工作方式运动,增加不必要的能耗和部件的寿命磨损。 太阳俯仰角h和方位角A的两个位置参数,可表达如下所示:

δ——赤纬角,Φ——本地纬度,Ω——太阳时角。 方案2:光电跟踪模式2: 该模型的算法是通过光敏传感器反馈不同方向的光强。具体方法:在模拟电池板上2,区别在于四个方向安装一个感光元件,通过感光元件反馈外部光强信息A/D转换后到达核心板,单片机再进行信息处理比较,当前光强大于上述光强,STM32单片机将直接驱动上端电机向下翻转;另外三种不同的运动条件,也完全相同。 通过两者的比较,选择方案2,简单易操作,更适合广泛使用。在相同的使用条件下,最简单的方案是最好的方案。 2.1.3选择主控系统 方案1:51单片机控制芯片的选择。它主要通过设置寄存器变量来实现。在程序修改方面,它也相当方便、快速和实惠,但正在增加A/D转换需要扩展,增加硬件和软件的负担,运行速度慢,使用中保护能力差。 方案二:像FPGA同样,使用大型可编程逻辑器件。FPGA以SRAM因此,编程信息存储在基础上SRAM中间。致命的缺点是系统断电后信息会丢失,下次需要重新配置。 方案三:ARM考虑到方案的可实施性,STM32能很好地解决数据处理和控制功能,非常适合太阳能跟踪,断电后信息不会丢失,可无限次使用。 结合本设计的任务要求,以及上述三种方案的相对比较,最终选择更适合本课题的设计标准,具体采用STM32F103C8T6。 2.1.4电机选择 方案一:选择步进电机。步进电机的优点是可以精确控制电机的步距和角度,完美实现实时跟踪。缺点是价格昂贵。 选择2:选择直流电机。便宜的价格是其亮点之一,减速器可以提高扭矩,负载大,高精度电机控制直流电机不能满足设计要求。 步进电机是一种将电脉冲转换为相应角位移或线位移的电磁机械装置。启动和停止可以通过控制脉冲数直接控制。启动速度快,步距角和速度仅取决于脉冲频率,受外界影响因素小。因此,对于本设计任务,为了更准确地控制角度值的精度,更好地利用太阳能,我选择方案1作为本课程设计的驱动电机。 2.1.选择5个电机驱动系统 方案一:L298专业电机驱动模块选型,操作简单,界面简单,可驱动步进电机和直流电机。 方案二:三极管等分立元件的H桥。亮点在于优点,制方式简单,结构简单。载流量小,由于元件离散,体积大,稳定性得不到保证。 方案三:采用集成芯片,ULN2003。 作为一种一次最多可以驱动8个步进电机芯片的芯片,达林顿管的ULN2003设计用于两个步进电机。在实际使用中,它往往起到输出点的作用,用来驱动步进电机的重载车辆。 本次设计根据实际设计要求,选择方案3作为步进电机的驱动系统。 2.1.5实体结构框架选择 方案一:两电机互相处以垂直状态,电机一是左右的转动而电机二是上下的转动,在不引入外界条件辅助设备的情况下会出现运动死角,从成本化出发是不可取的。 方案二:将两个电机由之前的垂直安装,改变为大于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当第二组感光元件接收到的光强度大于其他三个方向的光强度时,电机在水平方向上完成电机反转并返回到原始状态。 三。当第三组感光元件接收到的光强度值大于其他三个方向的光强度值时,电机完成垂直电机正向旋转并返回到原始状态。 4当第四组感光元件接收到的光强度值大于其他三个方向的光强度值时,电机完成电机的垂直方向并返回到原始状态。 当所有感光元件在接收管的均匀照明下时,此时的照明强度几乎相等,这意味着电机的状态不移动。 2.2.4整体电路原理图如下:

图2-2-4 整体电路原理图 系统上电正常启动后,程序初始化完成,通过感光元器件获得当前的光照强度,单片机进行A/D转换后的光照强度值进行判断,从而控制控制步进电机运动,程序开始判断步进电机转动模式是手动模式还是自动【2】,初始默认状态是自动跟踪模式【3】。 手动模式,通过控制 4 个按键的高低电平来实现接通与断开,单个控制开关分别控制两个电机四种不同的状态运动。程序判断为自动模式后,开始自动读取检测电路并返回信号,当检测到是各个方位的光照强度值有较大的的差异是,那么单片机就发出控制指令控制步进电机进行转动,升压模块是为了给整个系统稳定供电而存在。

第三章 元器件介绍 3.1 系统硬件系统分析设计 3.1.1 STM32单片机核心电路设计 处理器基于ARM 7架构的32位——STM32单片机系列,支持实时仿真可实现跟踪的微控制器【4】。之所以使用该系统,是因为在设计之初,要求实现的不是最低的成本和较低的功耗,而是在达到规定的设计要求之外,能够更好地为实验之外的一些要求提供更多的串口和扩展的应用电路,对发展前景的选择多于51。 一、STM32的主要优点:

  1. 采用ARM架构的Cortex-M3内核
  2. 实时性能的优越无可厚非性
  3. 功耗控制的把握性
  4. 出众及创新的外设
  5. 集成整合的高度完善性
  6. 易于开发性,可以更好的快速投入市场使用 二、STM32平台的选择可靠性: 同平台的项目开发,STM32是最优之选,具体表现如下:
  7. 存储空间和管脚应用少到大存储空间和多管脚的过度
  8. 对于苛求性能的应用到电池供电的应用
  9. 对于简单应用到高端应用的过度
  10. 对软件和引脚的高度兼容性。 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 按键电路设计 按键控制相当于一种电子开关,通过控制按键的闭合与断开从而实现对电路通断的控制,其内部原理主要是通过内部金属弹簧由于外力的作用而相对运动,在整个控制过程中按键占据输入的主导地位,从而达到人机交互的效果。按键时,相应的MCU引脚电平由高变低,从而向系统发送手动输入指令。 电路原理图如下:

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

图3-1-4 光敏电阻原理 3.1.5 TFT触摸彩屏1.44寸模块 TFT,也被称为电影场效应晶体管,是有源矩阵的一部分。然而,对于TFT显示器,像素直接由点脉冲控制,这相当于为每个像素设置了一个控制开关。因此,每个节点都处于完全独立的状态,但也可以连续控制,连续控制不仅可以提高显示器在使用中的反应速度,还可以实现对色阶显示器的精确控制。TFT液晶显示屏的亮点是明亮,对比度高等。 全新LCD模块,本模块是通用型的TFTLCD模块。 一、该模块有如下特点:

  1. 128×128的分辨率。
  2. 1.44寸彩屏。
  3. 驱动IC:ST7735。
  4. 色彩深度:16位(65K色)。 二、接口定义 表 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%。 使用EVA作为钢化玻璃固定的原材料和电池芯的使用寿命将直接影响到EVA相关元器件在用材料的质量,当相关组件在自然情况下是全部裸露在自然化环境中,而空气中的容易色变,从而影响组件的透光率。 晶体硅主要是分为多晶和单晶料是最主要的光伏材料,在市场中的占比也是惊人的达到了90%以上,然而在今后较长时间内也是主要是以硅作为太阳能电池板的主要材料,可将其相当不错的未来可预见性。 实物图如下图所示:

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

图3-1-6(b) 太阳能电池板发电接口原理图 3.1.7 TP4056锂电池充电模块电路设计 TP4056锂电池充电模块,适用于USB电源和与适配器,PMOSFET作为架构,再使用了防倒充电电路,因此不需要外接隔离二极管,防止电回流,TP4056作为恒定电流/电压可持续性充电模块,作为本次选择的有力据。为了防止因为高温和大功率状态下对芯片的影响,选用TP4056可完成对电流大小的可控调节。 本模块的特点: 1 车载锂电池充电管理芯片。 2 USB连接器,可直接完成电脑或外设通过USB直接通电。 3 IN+和IN-针供电。 4 输入电压范围:4v-8v,输出峰值:1000mA。 5 充电时红灯亮,充电后蓝光亮。 TP4056锂电池充电模块接口示意图如下图所示。锂电池并联电容器是保证锂电池充电电压稳定输出的滤波功能。 锂电池充电模块如下:

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

图3-1-7(b) 锂电池充电模块实物图 3.1.8 USB-5V升压模块电路设计 USB5V升压模块,该设备丝印为4X,NXh,也被称为HX3001,是一种高效的输出,恒定频率,高速控制。其显著特征是低压0.9V低压开机,一起转化效率高达94%,中等功率用,可提供中国电压输出规格。本设计系统采用升压模块将电压从3.7V升压到5V 三、使用说明 1模块需要与5V电源线连,能直接充到USB母座的5V正极垫或模块正面特定位置电容器一端的跨接导线上。 实物图如下:

图3-1-8(a) 模块5V跳线取线图 2. 在焊接USB-5V升压模块时,电源输入端子可以直接与电源线焊接,也可以单排插脚焊接后插入PCB板或通用板。 下图为USB-5Vboost模块接口示意图。当我们关闭开关时,系统中的升压模块通电并开始正常工作,然后3.3V锂电池的电压被升压到5V。相反,增压模块不工作。电容器在系统中的作用是减小电压波动,使电压输出更加稳定。接口原理图如下:

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

图3-1-8©USB-5V升压模块实物图 3.1.9 分压电路设计 串联分压原理: 在串联电路,常数是电流处处相等,每个支路的电压之和就是电压之和,也就是说支路的电压从头到尾都小于总电压,所以称为分压。 当采集到的电压信号超过所选a/D模块的最大采集电压值时,需要采用分压器的形式来解决电压过高引起的溢出问题。 3.2 STM32 单片机系统软件设计 3.2.1 Keil程序开发环境 单片机的开发环境是Keil。与汇编语言相比,C语言的突出特点是逻辑结构清晰,在可维护性、结构、可读性和功能上易于学习和使用。Keil有一套完整的开发方案,包括c编译器,链接器和图书馆管理,我们使用集成开发环境(Vision)把各个部分放在一起。选择Keil通过以上的基本解释,即最后的选择,最好的选择。要运行Keil的软件,需要WIN98、WINXP和其他操作系统。Keil有以下特点 1) keil软件可以支持WIN7和WIN8的各种操作系统。它为编译器提供了丰富的经验和强大的开发工具。 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 软件开发工具
  4. STC11F16XE单片机开发集成环境:Keil
  5. 单片机下载上位机软件:STM ISP下载器MCUISP
  6. PCB绘图软件:dxp
  7. 流程图绘画软件: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] 李帅男 《信息技术与信息化》 2018年第9期67-69,共3页 [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);//显示					
	}
}											    

}

标签: 丝印341l的三极管丝印y11三极管丝印j3的三极管丝印6k三极管motors智能电机传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台