太阳跟踪装置系统设计与制作
摘要
對綠色能源的開發和利用是響應我國節能減排重要決策,太陽能跟蹤裝置。此裝置使用了單片機,外加兩個步進電機,光電轉換器和相關的外部元器件及傳感器等等,其中太陽能電池板和云臺都可以很好的完成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 研究太陽能跟蹤器的目的和意義
為了解決人們對不可再生資源的過度依賴和對清潔能源的高利用率。提出設計一款零污染高效率的裝置——太陽追蹤器。通過電機,控制器,采光板光線傳感器等元器件之間的相互配合,實現對太陽光照射最強的方位跟蹤,安全且絕對的無污染清潔能源,這也就很好的闡述了光能的可行性。——對此提出太陽跟蹤裝置設計與制作。
1.3 對太陽能的認識
優點:太陽作為一個取之不盡用之不竭的能源。在《太陽能利用技術》[2]就有相關的提到,所到達地球表面能量等同于每秒向地球源源不斷的投放了500萬噸煤炭。陽光所到之處,皆為財富,免費使用的同時也不需要考慮任何的運輸費用以及零污染等特性。缺點:即便如此的看似完美無缺,也存在著兩個致命性缺點[3]:一是能流密度很小;二是太陽的光照強度也會因為(天氣、白夜等)因素的不同而有著很大的差距,很難長時間維持在恒定值,這也在一定程度上大大的影響了使用效率[4]。
1.4 太陽追蹤器國內外現狀與發展趨勢
國外太陽追蹤器:對太陽能的使用在兩千零四年到兩千零六年太陽能的發電量都是驚人的4961MW[5],在一九九七年,美國的Blackace研制了單軸追蹤器,熱接收率提高了百分之十五…, [6]。
國內太陽追蹤器:在應用市場上面得到了不斷擴張,對于太陽能追蹤器的利用那也是一個相當熱門的談話主題,途徑多年的經驗,將其用在了熱水器、路燈以及西部計劃、太陽能發電、太陽能供暖等等[7]。
更多的往往是采用單軸跟蹤的方式,相比之下更需要多軸,實現全方位無死角跟蹤。
1.5 工作內容
自動控制和手動調節工作方式:
“自動模式”:自動模式顧名思義也就是不受人為控制的一種自動追尋的過程。設備上電后,初始化完成,根據感光元件對光強度值得采集,后經過A/D轉換將電信號轉換成數字信號,根據數字信號的大小關系實行控制電機運動,當光照強度值下方大于上方,單片機發出控制指令,上端電機向下翻轉;同理光照強度上方大于下面,單片機發出控制指令上端電機向上翻轉;當且僅當上下光照強度均等時,上端電機不進行任何的相對翻轉。左右方向轉動,光照強度值右高于左方,單片機發出指令,控制下方電機左方向旋轉相應角度;光照強度值左高于右時時,單片機發出控制指令,下方電機向左轉動相應角度;當左右方位采光度也保持幾乎均應的時候光照,那么下方位的第一個電機也將保持不動。
手動模式下,通過手動控制四個按鈕的高低電平狀態實現上,下,左,右翻轉動作。
第二章 方案選擇與系統設計
2.1 方案選擇
2.1.1 編譯語言的選取
選項1:C語言
語言結構,豐富的運算符和程序在編寫時既簡單又緊湊。直接訪問物理地址可實現直接硬件控制。該程序運行非常有效。
作為面向過程的C語言,它的特征在于對算法和數據結構的處理。通過直接算術處理,實現高效率輸出。
選擇2:C++語言
C ++面向對象,更好地適應現代編程。使用過程中C++的使用具有局限性,嵌入式的應用中,更多的依舊是采用C語言作為開發環境使用,C語言運行也較快。C++由于過于復雜,在這方面就稍遜一籌。
選擇3:Java
Java是一種解釋性語言,Java在運行程序時,運行前進行解釋,使得速度會減慢;而C++會被直接編譯系統所能識別的二進制代碼形式,使得在運行速度更快。
從系統的復雜性出發來考慮,同時整個過程的計算量比較大,因此我選用了浮點數的計算方式,選用1作為整個系統編譯方式。
2.1.2 控制系統總體方案選取
選擇1:視日尋跡追蹤模式
這種模式是基于天文學公式,通過公式對其理想化計算得出太陽在不同時候所處的不同方位和角度。后期依據當地的每日實際運行軌跡進行對應控制算法程序的編寫來完成兩個步進電機來達到俯仰和方位上的轉動。優點是對外界環境的依賴小,弊端是不管外界環境是何種天氣,它都會以同樣的工作方式運動,增加了不必要的能耗和元器件的壽命磨損。
太陽俯仰角h和方位角A的兩個位置參數,可表達如下所示:
δ傾角,Φ局部緯度,Ω太陽時角。 (5-1)
選擇2:光電跟蹤模式
特定方法:模擬電池板的不同之處在于,在四個方向上安裝了光敏元件[8],并且有關外部光強度的信息的反饋通過光敏元件傳輸到核心板上的A/D轉換。單片機再進行信息處理比對光照強度下大于上STM32發出控制指令,驅動上端電機向下翻轉;另外的三種不同的運動情況,也都是完全相同的控制比較方式。
通過兩者的比較,選擇2,簡單易操作性,更適合被普及廣泛使用,在同等使用條件下,最簡方案,則是最優方案。
2.1.3主控系統選擇
選擇1:51單片機控制芯片的選擇。程序修改,相當方便快捷,價格低,但A/D轉換需要拓展,增加軟硬件負擔,運行速度慢,在使用中保護能力欠佳。
選項2: FPGA基于SRAM,編程信息存儲SRAM中。缺點系統斷電后信息遺失,每次使用都必須重新配置。
選擇3:ARM高性能嵌入式系統。對解決數據處理和控制功能具有相當不錯的表現,十分適用于太陽能跟蹤,斷電后信息不會丟失,可無限次使用。
結合任務要求,選用3作為設計標準,采用STM32F103C8T6。
2.1.4電機選擇
選擇1:步進電機。可以精確控制電機的轉到角度,以便于更好的實時跟蹤。
選擇2:直流電機。減速機提高轉矩,具有較大的負載,高精度電機控制直流電機無法滿足設計要求。
通過控制脈沖數直接控制啟動和停止。啟動速度快,步距角和速度僅取決于脈沖頻率,不受外部因素的影響。因此,作為此設計任務的前提條件,我們選擇了方案1作為本路線設計的驅動電機,以便更精確地控制角度值并更好地利用太陽能。
2.1.5電機驅動系統選擇
選擇1:L298專業電機驅動模塊選型,這種類型的驅動模塊易于使用和連接,并且可以同時驅動步進電機和直流電機。
選擇2:用于三極管和其他分立元件的H橋。重點是優點,簡單的控制方法和簡單的結構。載流量小,由于元件離散,體積大,穩定性得不到保證。
選擇3:采用集成芯片,ULN2003。
可驅動八個步進電機芯片,可用于兩個步進電機。在實際使用中,它通常被用作為大型步進機動車輛提供動力的起點。
在本設計中,根據實際設計要求選擇了選項3作為步進電機驅動系統。
2.1.5實體結構框架選擇
選擇1:電機互相處成90°角安裝,電機的左右翻轉和上下翻轉,缺少互助設備會出現運動死角。
選擇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-步進電機。
具體驅動電路原理圖如下:
圖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,也被稱為電影場效應晶體管。由點脈沖控制,這相當于為每個像素設置了一個控制開關。節點之間完全獨立,也可連續控制,連續控制可提高反應速度。
一、該模塊有如下特點:
二、接口定義
表 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鋰電池充電模塊,防倒充電電路, TP4056作為恒定電流/電壓可持續性充電模塊,作為本次選擇的有力據。為了防止因為高溫和大功率狀態下對芯片的影響,選用TP4056可完成對電流大小的可控調節。
本模塊的特點:
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開關閉合,升壓模塊得電工作,鋰電池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語言邏輯結構清晰,包括鏈接器和圖書館管理,我們使用集成開發環境(Vision)把各個部分放在一起。選擇Keil通過以上的基本解釋,即最后的選擇,最好的選擇。
Keil界面如下:
圖3-3-2 Keil uVision5開發界面圖
3.2.2 STM ISP程序燒錄
STM ISP是用于編程的燒錄軟件可以直接下載單片機使用的程序,同時程序檢查和編程。32開發板、下載器以及PC連接后,選擇相應的串口號,選擇目標程序對應端口,單擊“開始變成(P)就可以完成對程序的下載”。
具體下載界面如下圖所示:
圖3-3-3 燒錄軟件下載界面
3.2.3 CH340串口程序燒寫模塊介紹
圖3-3-4(a) CH340串口燒寫模塊
二、CH340串口燒寫模塊引腳說明
三、CH340串口燒寫模塊
具體接線圖如下表所示:
表3-4-4(b) CH340串口燒寫模塊與單片機接線
CH340模塊 單片機開發板
TXD 引腳PA10
RXD 引腳PA9
GND GND
3.4 軟件開發工具
第四章 系統測試
4.1 軟件調試
為了防下載程序出錯,在調試前,我們需要特別留意,所編寫程序在對單片機選型,是否準確無誤,串口也要正確,本設計所使用的單片機型號為STM32F103c8t6,使用keil軟件作為編程工具,程序完成后生成。hex文件,現在編譯程序,當軟件編譯完成后,下方顯示檢查無錯誤,接著就是程序的調試部分,調試完成,生成最后的最終程序其型號選擇如圖4-1所示。Keil編譯程序成功如圖4-2所示。
圖4-1 Keil單片機型號選擇
圖4-2 Keil編譯成功
程序編譯結束,切換輸出選項卡,生成.hex文件,確認保存路徑,重新編譯和組建程序,后生成.hex文件。Keil生成.hex如圖下圖。最后將程序從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 全文總結
整個系統使用了STM32F103C8T6核心板、光敏采集電路、調壓模塊、步進電機等構成。光敏采集板和主控板連接線相互連接。光敏采集板安裝光敏傳感器模擬太陽能板。主控板按鍵控制及相關驅動方面進行指令控制。
一、太陽能板采光。電路穩壓后將電能備用到電池里面進行儲能,3.3升壓到5V給整個系統供電,有單獨的電源控制開關可以進行電源的通斷控制。在給設備系統進行上電后,系統最初的默認形式為隨太陽運動而運動的“自動模式”,還有就是可以通人為控制改為“手動模式”[9]。
二、 系統上電時,無論是自動還是手動,光敏電阻都會采集光強度并完美地顯示在顯示屏上,上、下、左、右四個方位。通過兩個步進電機驅動來完成上下左右運動,將兩個步進電機焊接在一塊形成了一個角度多自由度的整體。兩個電機都是通過連接線與主板進行的連接,通過光敏電阻對光強度的采集獲得四個方位的不同關照強度值,最后通過與預計值的比較,最后來確定電機的運動軌跡[10]。
三、自動模式:Automatically judge the light intensity, if the light intensity below is greater than the light intensity above, the STM32 MCU will directly drive the upper motor to flip down;以便于在下午太陽西落的時候,獲得更多的關照,若上面光照強度大于下面光照強度,STM32單片機就會直接驅動上端步進電機向上進行運動[11];若上下兩個方位的光照強度均是大小相差無幾,那么上端步進電機則不進行任何的動作。接下來就是對于當上下光照均勻左右運動的情況,若右方位的光照強度大于左方位的情況下,STM32單片機就直接驅動下方位第一個步進電機向左方位一定角度轉動[12];左方光照強度高于右方光照強度,單片機直接驅動下方位步進電機左位運動[13];當左右方位采光度也保持幾乎均應的時候光照,那么下方位的第一個電機也將保持不動。那么此時此刻設備的狀態將是完全的禁止,STM32單片機將不對電機給出任何的運動指令[14]。
四、切換“手動模式”狀態手動按鍵完成設備狀態切換。四個按鈕控制:上、下、左、右四個方位的運動。通過點動的方式來控制驅動步進電機的實際運動[15]。
四、當太陽能收集有限時,此時使用外部電源USB充電模塊對其進行鋰電池上電,以保障系統的正常運行[16]。
顯示屏顯示光敏電阻采集光的范圍0-1000。自動模式和手動模式,對上、下、左、右方向進行光的采集。兩個步進電機實現多維度控制,上下翻轉和左右轉動。
5.2 后續工作展望
它在原有的基礎上,還可以與外部設備配合使用,如利用電廠的儲能,向魚塘的制氧機供電,通過電力實現步行關燈,藍牙控制路燈等
致 謝
時間很快,畢業設計已經開始接近尾聲,幾年的大學學習生涯即將告一段落,在后期的研究生生涯中希望可以得到更好的視野拓展。通過本次的設計,問題也是層出不窮,也是這些困難讓我學會了成長,以前幾乎自己一個人沒有單獨做過設計,因此也遇到C程序的編寫這一大困難。慢慢的一切都會因人而解,吳導師的大力幫助,是很重要的一個環節。
從這次的畢業設計中,深刻的體會到學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這就是我在這次畢業設計中的最大收獲。硬件只有多做,自己多搭建電路來調試才能真正的學得知識。
首先,我要感謝我的導師對我的悉心指導。他為我的畢業設計指導盡心竭力,他淵博的知識、平易近人的性格以及在設計上敏銳的洞察力,使我受益非淺。在整個畢業設計期間,老師時不時提醒著我,要做什么了,聽在耳里,看在眼里更是記在心里。從最初的選題到后期的完成,少不了導師的教導。占用了老師的寶貴時間,得以最后完成論文。
在大學的幾年學習生活中,感謝學院也感謝各位老師讓我們有了獲取知識的平臺,結識了一幫有著共同愛好的朋友,我們大家共同學習,為完成畢業設計打下了基礎——感謝得以與大家相識、相知、相惜。
謝謝大家!
參考文獻
[1] 張翠華,范小振.《能源新視野》. [M]. Boston: Artech House, 2017 , 5-8
[2] 羅金玲.《電腦編程技巧與維護》.[M].2015年第22期31-32,37共3頁
[3] 武奇生.《基于ARM的單片機應用及實踐》.[M].機械工業出版社12頁
[4] 郭欣. 太陽能雙軸跟蹤系統的研究與設計[J].裝備制造與教育, 2017, 03 , 6-9
[5] 楊亞龍. 太陽能電池板自動追光系統研究與實現[D]. 長安大學, 2014 , 5-6
[6] 高緒昊. 太陽能跟隨系統設計[J].硅谷, 2013 02
[7] 劉卿卿,俞強,趙毛毛,王競雄. 基于STM32的光電式太陽跟蹤系統設計[J]. 儀表技術與傳感器, 2017, 01
[8] 扎西頓珠 袁超 胡石峰.《黑龍江科學》. [M].2019年第24期28-31,共4頁
[9]
[10] 李仁浩,龔思敏,楊帆. 基于單片機控制太陽能智能跟蹤控制系統的設計[J]. 儀表技術與傳感器.2015(04) :21-23
[11] 葉偉慧,廖才,石金強,陳國康.基于陽光方位探測器的太陽能收集板姿態調節系統 [J]. 儀表技術與傳感器, 2011(03) :156-160
[12] 劉卿卿,俞強,趙毛毛,王競雄.基于STM32的光電式太陽跟蹤系統設計[J].儀表技術與傳感器.2017(01)
[13] 李仁浩,龔思敏,楊帆,劉松,李小兵.基于單片機控制太陽能智能跟蹤控制系統的設計[J].儀表技術與傳感器.2015(04)
[14] 王定玲,夏美娟.太陽能自動跟蹤系統設計[J].江蘇科技信息. 2017(02)
[15] 申來明,楊亞龍.一種利用單片機實現太陽跟蹤的設計方法[J].現代電子技術. 2014(10)
[16] 許義泉,王燕昌,王子文,慕松.赤道坐標系下新型太陽能自動跟蹤裝置設計[J].機械設計與制造. 2013(09)
[17] 閆云飛,張智恩,張力,代長林.太陽能利用技術及其應用[J].太陽能學報. 2012(S1)
[18] 王陽.太陽能電池板追光系統的研究[D].沈陽工業大學.2017
[19] 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
[20] 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
[21] 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();
// 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-1000lighVla_up = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_1)/4096; //讀取ad值 轉化為0-1000lighVla_right = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_2)/4096; //讀取ad值 轉化為0-1000lighVla_down = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_3)/4096; //讀取ad值 轉化為0-1000if(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);//顯示 } }}
總結
以上是生活随笔為你收集整理的太阳跟踪装置系统设计与制作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CPU结构与指令执行过程简介
- 下一篇: 【原】jQuery编写插件