魯志飛
(山東今日頭條網絡科技有限公司 山東 濟南 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”,標志數據發送完畢。
通過以上設計流程,無線遠程控制子系統不僅保證了雙軸追蹤系統與上位機之間的實時通信,而且還確保了數據的完整性和正確性,為實現精確控制提供了可靠保障。
綜上所述,本文在單片機技術支持下,開展了太陽能雙軸追蹤系統的研發設計,并對該系統的硬件設計思路與軟件設計思路進行了充分闡述,提出了將光電追蹤與太陽軌跡追蹤兩種方式相互搭配的太陽能利用模式,彌補了現有太陽能追蹤系統的使用缺陷。 希望能夠有助于提高目前我國對于太陽能的采集效率,并為后期光伏行業的發展創新提供前進方向。