鲁志飞
(山东今日头条网络科技有限公司 山东 济南 250000)
太阳能作为一种常见的可再生资源,具有广泛分布、清洁无污染、储量巨大的特点。 2022 年,朱利军[1]学者提出将检测光强以及太阳轨迹算法相结合的方法,用于设计和优化整个太阳能接收装置系统。 通过使该装置依据太阳轨迹进行转动,可以实现对太阳光的高效利用。 同年,冯月[2]等学者也提出了一种基于GPS 定位算法的太阳能追踪系统优化方案,使改造后的太阳能接收板能够在水平和垂直两个方向对太阳进行追踪。 基于这些研究成果,本文提出一种基于单片机的太阳能双轴追踪系统。 该系统可以使太阳光始终以最佳角度照射在太阳能电池板上,从而解决当前光伏发电电能收集效率低、有线传输操作难度大等实际问题,提高太阳光的利用效率。
为改变传统太阳能追踪系统单一的追踪模式,本文在单片机技术支持下,提出太阳能双轴追踪系统,其系统总体设计框架如图1 所示。
图1 系统总体设计框架图
在本系统中,采用了光敏电阻,放置在太阳能板的光接收面上,以便检测阳光的强度和方向。 在阳光充足的情况下,系统将采用光电追踪模式;而在光线较弱或天气较阴暗时,系统会自动切换到太阳轨迹追踪模式。 这种双模式追踪策略有效地解决了因光线不足导致的追踪失效问题,并减少了仅使用太阳轨迹追踪所产生的误差。 为了实现以上两种功能,本系统包括了多个硬件组件,如单片机、执行器驱动、无线远程控制模块等。 其中,光敏器件负责实时检测太阳光位置的变化,并将模拟信号通过转换电路转换成相应的电信号,然后传输给单片机。 而太阳能电池板则负责将太阳能转化成电能,利用专业仪器检测太阳能电池板的各项参数。 在系统运行过程中,利用单片机将太阳的位置数据转化为控制指令,进而实现对硬件系统的合理运用。
考虑到太阳能双轴追踪系统对实时处理、模式切换和信号采集的需求,本设计选择Arduino Nano 单片机作为主控制器。 Arduino Nano 单片机具有丰富的I/O 引脚,能够满足系统的多功能需求。 并且,它出色的模拟信号处理能力可以确保准确读取太阳位置数据。 同时,该单片机也具有高时钟速度和低功耗的使用特点,能够保证系统的快速响应和持久运行。 此外,Arduino Nano 单片机不仅具备灵活的编程能力,而且相对于其他单片机来说尺寸更小,有效节省了硬件空间,使整体系统更经济、高效[3]。
Arduino Nano 单片机的技术规格为:
(1)微控制器:ATMEGA328P;
(2)工作电压:5V;
(3)输入电压(推荐):7~12V;
(4)数字I/O 引脚:22;
(5)模拟输入引脚:8;
(6)DC 为每I/O 引脚的电流:40 mA;
(7)闪存:32 kB;
(8)SRAM:2 kB;
(9)EEPROM:1 kB;
(10)时钟速度:16 MHz。
1.3.1 光敏电阻传感器的电路原理
光敏电阻传感器是追踪系统光电追踪模式的核心元器件,是进行光采集与感知的最重要组成部分。 为实现追踪系统光电追踪模式的正常运行,其核心原理如下。
(1)模拟量输入原理
光敏电阻(light-dependent resistor, LDR)的电阻值与其所受到的光照强度成反比。 当光线强度增加时,LDR的电阻值减小,反之则增大。 利用这一特性,设计了一个简单的电压分压器电路:
在式(1)中,Vout为输出电压,Vin为输入电压,RLDR为光敏电阻的电阻值,Rfixed为固定电阻值。 在实际运行中,系统通过判定Vout的数值的输出大小,即可自动感知光照强度。
(2)数字量输入原理
为将模拟信号转换为数字信号,基于上述分压器电路,得到一个随光照强度变化的模拟电压值,再利用模数转换器(analog to digital converter, ADC)将这一模拟电压值转换为一个数值,该值随后由微控制器进行分析处理。转换公式如下:
在式(2)中,ADCvalue为ADC 的输出数字值,Vref为参考电压,n为ADC 的位数。
(3)灵敏度调节原理
为实现太阳能双轴追踪系统在不同光照下的灵敏度,采用了两种方法。 首先,通过改变固定电阻Rfixed的值来调整分压器输出电压。 其次,通过调整ADC 的参考电压Vref来提高系统的灵敏度。
1.3.2 感光板排列方式
在太阳能双轴追踪系统中,为了确保在各种光照条件下的高效追踪,对于感光板的排列方式进行了特殊的设计。 首先,在中心位置放置一个小的不透平板,以在日光直射时产生阴影。 其次,围绕中心,在北、南、东、西4 个方向各放置一个光敏电阻传感器,以确保在阳光充足的情况下,系统能够精确感知太阳光的位置并采用光电追踪模式。 此外,感光板的4 个角落也各放置一个光敏电阻传感器,以提高斜射的日光或光线较弱的环境下的灵敏度,保障系统在这些情况下可以快速切换到太阳轨迹追踪模式。可以说,这种综合布局确保了无论日光的角度如何变化,系统都能实现准确且灵敏的太阳追踪,极大提高了系统对于太阳能的采集效率。
为实现太阳能双轴追踪系统的远程控制,本系统采用了NRF24l01 无线串口模块作为与上位机无线通信的芯片。 该模块是一个高性能、低功耗的2.4GHz ISM 频段的无线通信模块[4]。 它支持多达125 个通道,能够在太阳能双轴追踪系统中有效地避免频道间的干扰,确保通信的稳定性。 此外,该模块还具有自动应答功能,当发送数据到上位机后,NRF24l01 会等待应答信号。 如果在指定时间内未接收到应答,则会重新发送数据,极大增强了通信的可靠性。 在系统运行过程中,SPI 时序则会成为无线串口模块与上位机的主要通信方式。 控制指令会通过SPI 接口从微控制器传输到NRF24l01 中,而NRF24l01 也可利用主出从入线将数据返还给上位机。
为满足太阳能双轴追踪系统的“双模式”追踪策略,提出了基于MG996R 舵机的双轴追踪结构搭建方法。
(1)框架结构
使用稳固基座作为支撑,中央安装2 号舵机控制水平方向旋转,与之联动的旋转架端部安装1 号舵机控制垂直倾斜。
(2)舵机功能
1 号舵机负责太阳能板的垂直倾斜,追踪太阳在天空中的高低变化。 2 号舵机负责控制太阳能板的水平旋转,追踪太阳从东到西的移动。
(3)控制策略
光电追踪模式:当感光板感知阳光方向或强度变化,发送信号调整1 号或2 号舵机,保持太阳能板最佳光照接收。
太阳轨迹追踪模式:光线较弱时,系统按预设的太阳轨迹算法控制1 号和2 号舵机。
此结构设计可确保太阳能板始终在最佳角度接收阳光,保证系统运作效率。 搭建模拟图如图2 所示。
图2 双轴追踪结构搭建方法示意图
2.1.1 开发环境介绍
本系统选择了Visual Studio 作为上位机监控软件的集成开发环境。 原因在于Visual Studio 可为C#提供出色的支持,而C#作为本系统所选择的编程语言,非常适合Windows 应用程序的开发。 此外,Visual Studio 拥有丰富的库,特别是. NET Framework,极大地简化了上位机监控软件的设计和与外部设备的通信流程,为上位机监控软件开发提供了良好的技术环境[5]。
2.1.2 上位机程序流程
(1)初始化:程序在启动时进行初始化工作,包括设置串口参数、加载配置文件、初始化图形用户界面(graphical user interface, GUI)等。
(2)建立连接:上位机程序会试图与NRF24l01 无线串口模块建立连接。 一旦成功,用户界面上会显示连接状态的相关信息。
(3)数据监视:在成功建立连接后,程序会开始实时监视从双轴追踪系统传输的数据,包括光电追踪的角度、太阳轨迹的预测位置等。
(4)用户交互:待太阳能双轴系统正常运行后,上位机程序会监听用户的指令。 无论是手动调整舵机角度、切换工作模式,还是查询系统状态,都可以通过GUI 轻松完成。
(5)错误处理:在整个上位机程序流程设计中,增设了详细的错误处理机制。 一旦发生通信错误、数据异常或任何其他问题,都会立即在界面上显示提示信息,并在必要时自动重启连接。
(6)结束程序:用户可以随时选择结束程序。 此时,上位机监控系统会断开与双轴追踪系统的连接并释放所有资源。
2.1.3 通信的建立与实现
为保证上位机监控软件顺利运行,仍选用NRF24l01无线串口模块作为通信实现的技术支撑。 一方面,在Visual Studio 中使用NRF24l01 的. NET 库,以实现利用几行代码就可以调整频率、通道和波特率,实现通信信息的高效传递。 另一方面,在发送与接收数据中,当上位机需要发送指令时,只需调用库的发送函数并提供必要的参数。 同样,当上位机需要从双轴追踪系统接收数据时,也只需要使用库的接收函数。
2.2.1 光电追踪子系统设计
光电追踪依赖于感光板的光敏电阻传感器来读取数据,以便调整太阳能板的角度。 首先,软件会对传感器读取的模拟值进行模数转换,从而获得当前阳光的强度和方向。 然后,系统依据这些值计算出1 号舵机和2 号舵机的调整角度,以实现太阳能的高效获取。 当阳光强度低于设定阈值时,系统会向太阳轨迹追踪子系统发送切换信号,转入太阳轨迹追踪模式。
2.2.2 太阳轨迹追踪子系统设计
子系统工作原理与光电追踪子系统的工作机制基本相同。 当系统检测到低光强度或收到切换信号时,太阳轨迹追踪模式启动。 此模式基于预设的太阳运行算法,根据地理位置、日期及时间,软件会预测太阳的位置。 进而计算出1 号舵机和2 号舵机需要转动到的精确角度。 当阳光强度回升至设定阈值以上,系统将自动回切至光电追踪模式。
2.2.3 无线远程控制子系统设计
无线远程控制子系统扮演着太阳能双轴追踪系统中的桥梁角色。 以下将详细讲解模块选择、数据通信协议、指令格式以及数据处理流程。
(1) NRF24l01 无线串口模块参数
本次选择NRF24l01+是因为其稳定的通信质量和广泛的社区支持,使得开发和调试更为简单。 模块参数如表1 所示。
表1 NRF24l01 无线串口模块参数
(2)通信协议设计
帧头: 使用2 字节帧头, 如“0xA5 0x5A”来标志数据开始。
指令码: 1 字节, 如“0x01” 代表切换工作模式,“0x02”代表调整舵机角度。
数据域: 长度可变,根据指令的不同进行动态调整。校验和: 1 字节, 采用简单的XOR 校验。
(3) 指令解析与响应
数据接收: NRF24l01+接收到数据后,通过SPI 接口传输至单片机。
帧检测: 单片机检查数据帧的帧头,确认数据包的开始。
解析指令: 根据指令码,解析后续数据。
执行操作: 根据解析结果,更改工作模式、调整舵机角度或回传系统状态。
发送反馈: 执行完操作后,单片机通过NRF24l01+发送反馈信息给上位机。
(4) 数据反馈机制
状态码: 如“0x00”表示成功,“0x01”表示错误。
数据域: 包含系统当前状态,如舵机的当前角度或系统工作模式。
结束符: 如“0xFF”,标志数据发送完毕。
通过以上设计流程,无线远程控制子系统不仅保证了双轴追踪系统与上位机之间的实时通信,而且还确保了数据的完整性和正确性,为实现精确控制提供了可靠保障。
综上所述,本文在单片机技术支持下,开展了太阳能双轴追踪系统的研发设计,并对该系统的硬件设计思路与软件设计思路进行了充分阐述,提出了将光电追踪与太阳轨迹追踪两种方式相互搭配的太阳能利用模式,弥补了现有太阳能追踪系统的使用缺陷。 希望能够有助于提高目前我国对于太阳能的采集效率,并为后期光伏行业的发展创新提供前进方向。