基于stm32的太陽跟蹤裝置設(shè)計與制作

對綠色能源的開發(fā)和利用是響應(yīng)我國節(jié)能減排尽纽,環(huán)保政策的舉措咐蚯,太陽能作為可持續(xù),零污染弄贿,具有很高的環(huán)保價值和經(jīng)濟效益春锋,高效利用太陽能還可以有效替代部分化石能源,從而降低因石化能源燃燒導(dǎo)致的污染差凹,減輕霧霾期奔。然而農(nóng)村太陽能豐富,卻沒能得到很好的利用危尿,即便現(xiàn)有的發(fā)電產(chǎn)品對太陽能電池板也大多采用固定支架呐萌。課題對此提出了能夠跟蹤太陽方向的云臺支架,可實現(xiàn)太陽能電池板自動調(diào)節(jié)而始終面向光線最強的一面谊娇,提高太陽能發(fā)電的利用率肺孤。課題從云臺,電機驅(qū)動济欢,控制器赠堵,光線傳感器,液晶顯示等構(gòu)成法褥,課題成果不僅可以用到太陽能發(fā)電顾腊,還可以用到其它的向光場所,如天文觀測等具有較高的實用價值挖胃。

太陽能杂靶;電機驅(qū)動梆惯;控制器;光線傳感器吗垮;液晶顯示屏垛吗;

The development and utilization of green energy is a response to China's energy conservation, emission reduction and environmental protection policies. As sustainable and zero pollution, solar energy has high environmental protection value and economic benefits. Efficient use of solar energy can also effectively replace some fossil energy, thus reducing pollution caused by petrochemical energy combustion and reducing smog. However, rural solar energy is abundant, but it is not well utilized. Even the existing power generation products mostly use fixed brackets for solar panels. In this paper, a pan-tilt bracket that can track the direction of the sun is proposed, which can realize the automatic adjustment of solar panels and always face the strongest side of light, and improve the utilization rate of solar power generation. The project consists of pan/tilt, motor drive, controller, light sensor, liquid crystal display, etc. The results of the project can be used not only in solar power generation, but also in other light-oriented places, such as astronomical observation, which has high practical value.

Key words: solar energy; Motor drive; A controller; Light sensor; Liquid crystal display screen;

隨著時代的進步與科技的飛速發(fā)展,使得對能源的需求隨之增加烁登,對不可再生能源的過度依賴[1]怯屉,從而使得不可再生能源的存儲量急劇減少,一些不可再生能源(石油)被視為戰(zhàn)略資源饵沧,據(jù)目前統(tǒng)計锨络,煤炭、石油狼牺、天然氣也會在歲月的實踐中而日趨枯竭羡儿,消耗殆盡。這些不可再生能源的產(chǎn)生顯然跟不上人類對其的需求是钥,為更好的實現(xiàn)可持續(xù)發(fā)展掠归,本課題提出了一種太陽追蹤的可行方案,可以大大提升對太陽能的利用悄泥,減少對不可再生資源的過度依賴虏冻。

為了解決人們對不可再生資源的過度依賴和對清潔能源的高利用率。提出設(shè)計一款零污染高效率的裝置——太陽追蹤器弹囚。通過電機厨相,控制器,采光板光線傳感器等元器件之間的相互配合鸥鹉,實現(xiàn)對太陽光照射最強的方位蛮穿,實現(xiàn)全方位無死角跟蹤,恰巧正好急需這樣一款具有安全宋舷、環(huán)保绪撵、高效率瓢姻、以及取之不盡用之不竭的特點祝蝠,也很方便就可以獲取,如風(fēng)能和潮汐能一樣是絕對的無污染清潔能源幻碱,這也就很好的闡述了光能的可行性[2]绎狭。——對此提出太陽跟蹤裝置設(shè)計與制作褥傍。

優(yōu)點:太陽作為一個取之不盡用之不竭的能源儡嘶。在《太陽能利用技術(shù)》[3]就有相關(guān)的提到,所到達地球表面能量等同于每秒向地球源源不斷的投放了500萬噸煤炭恍风。陽光所到之處蹦狂,皆為財富誓篱,免費使用的同時也不需要考慮任何的運輸費用以及零污染等特性。

缺點:即便如此的看似完美無缺凯楔,也存在著兩個致命性缺點[4]:一是能流密度很写芙尽;二是太陽的光照強度也會因為(天氣摆屯、白夜等)因素的不同而有著很大的差距邻遏,很難長時間維持在恒定值,這也在一定程度上大大的影響了使用效率[5]虐骑。

國外太陽追蹤器:對太陽能的使用在兩千零四年到兩千零六年太陽能的發(fā)電量都是驚人的4961MW[6]准验,在一九九七年,美國的Blackace研制了單軸追蹤器廷没,熱接收率提高了百分之十五......,后期圍繞高效率糊饱,輕質(zhì)量展開。在太陽能游艇腕柜、太陽能飛機济似、太陽能瓦片等方面得到運用,也見證了太陽能利用的高效率性[7]盏缤。

國內(nèi)太陽追蹤器:在應(yīng)用市場上面得到了不斷擴張砰蠢,對于太陽能追蹤器的利用那也是一個相當(dāng)熱門的談話主題,途徑多年的經(jīng)驗唉铜,將其用在了太陽能熱水器台舱、太陽能路燈以及西部計劃、利用太陽能發(fā)電潭流、太陽能供暖等等[8]竞惋。

更多的往往是采用單軸跟蹤的方式,相比之下更需要多軸灰嫉,實現(xiàn)全方位無死角跟蹤拆宛。

針對不同條件下,提出了自動控制和手動調(diào)節(jié)的兩種工作方式:

其中以“自動模式”概述:在自動追尋的過程中讼撒,會自動判斷光的強度的大小浑厚,若下面光照強度大于上面光照強度,STM32單片機就會直接驅(qū)動上端電機向下翻轉(zhuǎn)根盒;以便于在下午太陽西落的時候钳幅,獲得更多的光照,若上面光照強度大于下面光照強度炎滞,STM32單片機就會直接驅(qū)動上端步進電機向上運動敢艰;若上下兩個方位的光照強度均等,上端步進電機不進行動作册赛。在上下光照均勻钠导,左右方向運動的情況震嫉,右方位的光照強度大于左方位,STM32單片機就直接驅(qū)動下方位第一個步進電機向左方位一定角度轉(zhuǎn)動牡属;若左方位的光照強度大于右方位的光照強度责掏,STM32單片機就直接驅(qū)動下方位第一個步進電機向左方位進行運動;當(dāng)左右方位采光度也保持幾乎均應(yīng)的時候光照湃望,那么下方位的第一個電機也將保持不動换衬。

“手動模式”狀態(tài)進行使用按鍵手動來完成設(shè)備狀態(tài)的切換。四個按鍵對應(yīng)控制電機完成:上证芭、下瞳浦、左、右的翻轉(zhuǎn)動作废士。通過點動的方式來控制驅(qū)動步進電機的實際運動叫潦。

在給設(shè)備系統(tǒng)進行上電后,系統(tǒng)最初為“自動模式”官硝,這樣可以更好的在不受人為干預(yù)的情況下實現(xiàn)對太陽能的最大接收矗蕊。

編譯語言的選取

方案一:C語言

簡潔緊湊、靈活方便;運算符的豐富性;數(shù)據(jù)結(jié)構(gòu)的豐富性;結(jié)構(gòu)式語言;語法局限性小,程序編寫自由度大;通過對物理地址的直接訪問氢架,使得完全可以對硬件實現(xiàn)直接控制;程序執(zhí)行效率高傻咖。

C語言面向過程,最主要的在于算法和數(shù)據(jù)結(jié)構(gòu)岖研。通過一個過程卿操,對輸入進行運算處理得到輸出。

方案二:C++

C++語言是面向?qū)ο蟮恼Z言孙援,在C的基礎(chǔ)上添加了面向?qū)ο蠛τ佟⒛0宓痊F(xiàn)在程序設(shè)計語言的特性。拓展了面向?qū)ο笤O(shè)計的內(nèi)容拓售,使之更加符合現(xiàn)代程序設(shè)計的需要窥摄。

看似C++比C多了很多優(yōu)點和特性,但C++并不是所有場合都適用础淤,很多嵌入式開發(fā)系統(tǒng)崭放,都只提供了C語言的開發(fā)環(huán)境,而沒有提供C++的開發(fā)環(huán)境值骇。很多C++語言不愿意干的臟活累活莹菱,C語言干起來快活得很移国。而C++因為過于復(fù)雜吱瘩,在這方面就稍遜一籌了。

方案三:Java

Java是一種解釋性語言迹缀,Java人氣極高使碾,但其代碼由于需要在運行前進行解釋因此性能表現(xiàn)更差蜜徽。C++會被編譯為二進制形式,因此其能夠立即運行且速度更快票摇。兩個程序都足夠大拘鞋、而且C++的代碼經(jīng)過優(yōu)化,兩者的速度差就會變得很顯著甚至很驚人矢门,C++會比java快很多盆色。

從系統(tǒng)的復(fù)雜性出發(fā)來考慮,同時整個過程的計算量比較大祟剔,因此我選用了浮點數(shù)的計算方式隔躲,選用方案一作為整個系統(tǒng)編譯方式。

2.2 控制系統(tǒng)總體方案選取

方案一:視日尋跡追蹤模式

這樣的一種模式物延,是基于天文學(xué)公式來得出太陽在不同時候的理論性的方位角和俯仰角宣旱,在后根據(jù)太陽每天在當(dāng)?shù)貙嶋H的運行軌跡位置編寫控制算法程序,通過使用控制算法的方式來實現(xiàn)對太陽所在位置的計算叛薯,最后通過驅(qū)動太陽能板的兩個步進電機來達到俯仰和方位上的轉(zhuǎn)動浑吟。有點是對外界環(huán)境的依賴小,同是也存在弊端耗溜,那就是不管外界環(huán)境是何種天氣组力,它都會以同樣的工作方式運動,增加了不必要的能耗和元器件的壽命磨損抖拴。

太陽的俯仰角h和方位角A的兩個位置參數(shù)忿项,可表達如下所示:

δ為赤緯角,Φ是本地緯度城舞,Ω表示太陽時角轩触。

方案二:光電追蹤模式

該模式的核心算法是利用光敏傳感器對太陽位置進行檢測。具體方法:在遮陽板兩側(cè)完全對稱地安裝光敏傳感器家夺,當(dāng)太陽光垂直照射在太陽能光伏電池板上時脱柱,安裝在兩側(cè)上的光敏傳感器所產(chǎn)生的電信號相等,將這兩路信號經(jīng)過放大后送入比較器進行比較拉馋,此時不驅(qū)動步進電機進行轉(zhuǎn)動榨为。當(dāng)太陽位置移動后,遮陽板對陽光進行遮擋煌茴,此時兩側(cè)的光敏傳感器產(chǎn)生的電信號不相等随闺,從而經(jīng)過放大比較后產(chǎn)生差信號,電機開始運動蔓腐,完成太陽跟蹤過程矩乐。

通過兩者的比較,選擇方案二,簡單易操作性散罕,更適合被普及廣泛使用分歇,在同等使用條件下,最簡方案欧漱,則是最優(yōu)方案职抡。

2.3主控系統(tǒng)選擇

方案一:51單片機作為控制芯片。主要是表現(xiàn)在:主要控制參數(shù)是使用設(shè)置寄存器變量得以實現(xiàn)误甚,在程序的修改方面缚甩,也是相當(dāng)?shù)姆奖憧旖荩杀疽彩窍鄬Φ土ぐ睿阅芘c相對簡單的太陽能跟蹤裝置系統(tǒng)匹配;數(shù)字化的控制系統(tǒng)蹄胰,可以達到較高的精度。

方案二:采用FPGA這樣的大規(guī)霓认瑁可編程邏輯器件裕寨,但本題屬于控制類,即現(xiàn)場可編程門陣列[WJ1]?派继,它是在PAL宾袜、EPLD等可編程器件的基礎(chǔ)上進-一步發(fā)展的產(chǎn)物。

方案三:ARM作為一種高性能嵌入式系統(tǒng)驾窟∏烀ǎ考慮到方案的可實行性,STM32可以很好的解決數(shù)據(jù)處理和控制功能绅络,十分適用于太陽能跟蹤月培,雖是ARM價格昂貴,但是在后期的可拓展空間更大恩急。[WJ2]?

結(jié)合本次設(shè)計的任務(wù)要求杉畜,以及上訴三種方案的相對比較,最后選用方案三更適合本課題的設(shè)計標(biāo)準(zhǔn)衷恭,具體采用STM32F103C8T6此叠。

2.4電機選擇

方案一:選擇步進電機,然而步進電機的最大優(yōu)點就是可以精確地控制電機步數(shù)和角度随珠,缺點是價格昂貴灭袁。

方案二:選擇直流電機。價格便宜是它的一大亮點窗看,通過減速齒可以提高扭力茸歧,具有更大的負(fù)載,但是對電機的高精度控制直流電機達不到設(shè)計要求显沈。

步進電機作為一種將電脈沖轉(zhuǎn)換成相應(yīng)角位移或線位移的電磁機械裝置软瞎。通過直接控制輸入的脈沖數(shù)量,直接控制其啟停,啟動是速度快铜涉,步距角和轉(zhuǎn)速只取決于脈沖頻率,受外界影響因素小遂唧。因此芙代,對于本設(shè)計任務(wù)要求,為更精確地完成對角度值的精度把控盖彭,更好地利用太陽能纹烹,因此我選用方案一作為本次課程設(shè)計的驅(qū)動電機。

2.5步進電機驅(qū)動系統(tǒng)選擇

方案一:L298專業(yè)電機驅(qū)動模塊的選擇召边,這類驅(qū)動模塊的操作方便以及接口簡單同時他們既可以驅(qū)動步進電機铺呵,也可驅(qū)動直流電機。

方案二:三極管等分立元件搭H橋隧熙。亮點在于實惠型片挂,控制方式簡單以及結(jié)構(gòu)簡單。優(yōu)點的同時也伴隨著弊端的存在贞盯,電流的承載能力比較小音念,相同的驅(qū)動能力受到限制,分立元件則體積較大同時穩(wěn)定性也得不到保證躏敢。

方案三:采用集成芯片闷愤,ULN2003。 .

達林頓管ULN2003,該芯片最多可一次驅(qū)動八塊步進電機,本設(shè)計作用于兩個步進電機件余,在實際的使用中讥脐,往往起著放點輸出的作用用于驅(qū)動大負(fù)載的步進電機等。

本次設(shè)計綜合考慮啼器,依據(jù)實際設(shè)計需求旬渠,選擇方案三作為步進電機的驅(qū)動系統(tǒng)。

2.6實體結(jié)構(gòu)框架選擇

方案一:兩電機互相處以垂直狀態(tài)端壳,電機一是左右的轉(zhuǎn)動而電機二是上下的轉(zhuǎn)動坟漱,在不引入外界條件輔助設(shè)備的情況下會出現(xiàn)運動死角,從成本化出發(fā)是不可取的更哄。

方案二:將兩個電機由之前的垂直安裝芋齿,改變?yōu)榇笥?0°的安裝,在不引入外部設(shè)備的情況下成翩,可以很好的避開運動死角觅捆,從而可實現(xiàn)全方位無死角跟蹤,綜合上述情況選擇方案二進行本次的實體結(jié)構(gòu)設(shè)計麻敌。

2.2系統(tǒng)設(shè)計

2.2.1 單片機構(gòu)成如下圖:

邏輯不通順栅炒,要指出FPGA不適用于本題的缺點

STM32整體比FPGA便宜很多,這條論證建議修改,或者做一個成本對比表再下結(jié)論

控制方式:第一步就是將數(shù)據(jù)程序輸入到輸入設(shè)備里面赢赊,輸入設(shè)備將程序傳輸給運算器CPU和存儲器乙漓,各自程序都對應(yīng)的傳輸?shù)娇刂破骼锩妫煽刂破魍瓿赏瓿上嗷サ闹噶顐鬟f释移,最后都是作用于輸出設(shè)備叭披,在輸出設(shè)備上顯示出來的結(jié)果就是最初程序所要表達的效果。

2.2.2 系統(tǒng)整體控制框圖如下:


圖2–2–2 系統(tǒng)整體控制框圖

控制方式:完成整個驅(qū)動控制玩讳,第一步就是感光元件及光敏電阻傳感器對外界光的采集涩蜘,完成電壓跟隨,通過A/D轉(zhuǎn)換熏纯,然后通過電壓的比較同诫,使用STM32F103C8T6單片機控制電機的驅(qū)動,最終完成不同電機在不同的光照強度情況下不同方向的運動樟澜,最后實現(xiàn)對光的最大化接收误窖。


2.2.3 電機控制框圖如下:


圖2–2–3 電機控制框圖

控制方式:通過光敏傳感器對光的采集,實現(xiàn)了最后對電機運動方式的不同選擇和控制秩贰。

當(dāng)感光元器件第一組接受到的光照強度值大于其它三個方位的光照強度時贩猎,那么電機完成水平方向的電機正轉(zhuǎn),并返回最初狀態(tài)萍膛。

當(dāng)感光元器件第二組接受到的光照強度值大于其它三個方位的光照強度時吭服,那么電機完成水平方向的電機反轉(zhuǎn),并返回最初狀態(tài)蝗罗。

當(dāng)感光元器件第三組接受到的光照強度值大于其它三個方位的光照強度時艇棕,那么電機完成垂直方向的電機正轉(zhuǎn),并返回最初狀態(tài)串塑。

當(dāng)感光元器件第四組接受到的光照強度值大于其它三個方位的光照強度時沼琉,那么電機完成垂直方向的電機反正,并返回最初狀態(tài)桩匪。

當(dāng)所有的感光元器件都處于接受管的均勻照射時打瘪,此時的光照強度幾乎大小相等,也就電機的狀態(tài)保持不運動傻昙。

?2.2.4整體電路原理圖如下:


圖2-2-4 整體電路原理圖

系統(tǒng)軟件總體設(shè)計流程如圖 2-2-4 所示闺骚。系統(tǒng)啟動后,軟件先進行初始化等工作妆档,當(dāng)程序初始化完成后僻爽,通過 感光元器件獲得當(dāng)前的光照強度,然后根據(jù)初始化的參數(shù)贾惦,控制步進電機將太陽能光伏板轉(zhuǎn)動到理論的初始狀態(tài)胸梆,預(yù)定方位敦捧。將太陽能光伏板轉(zhuǎn)動到理論位置后,程序開始判斷步進電機轉(zhuǎn)動模式是手動模式還是自動碰镜,初始默認(rèn)狀態(tài)是自動跟蹤模式兢卵。

當(dāng)手動模式時,人為調(diào)整電機控制上下左右 4 個按鍵的狀態(tài)绪颖,使得電機按照人們預(yù)想的方向進行運動秽荤,以此來得以控制四個方位的不同垂直轉(zhuǎn)動和水平移動的俯仰角和方位角。當(dāng)程序判斷為自動模式后菠发,開始自動讀取檢測電路的返回信號王滤,當(dāng)檢測到是各個方位的光照強度值有較大的的差異是贺嫂,那么單片機就發(fā)出控制指令控制步進電機進行轉(zhuǎn)動滓鸠,升壓模塊是為了給整個系統(tǒng)穩(wěn)定供電而存在。


第三章 元器件介紹

3.1 系統(tǒng)硬件系統(tǒng)分析設(shè)計

3.1.1 STM32單片機核心電路設(shè)計

STM32單片機系列第喳,處理器是基于ARM 7架構(gòu)的32位糜俗,可以支持實時仿真的同時也可以實現(xiàn)跟蹤的微控制器。對于本系統(tǒng)之所以使用STM32的原因便是曲饱,設(shè)計最初悠抹,要求達到的就并非最低成本與更小功耗,而是在實現(xiàn)規(guī)定的設(shè)計需求外扩淀,可以更好的為實驗外的部分需求而提供更多的串口和擴展應(yīng)用電路而選擇楔敌,對于發(fā)展前景也相較于51有了更多的選擇。

一驻谆、STM32的主要優(yōu)點:

采用ARM架構(gòu)的Cortex-M3內(nèi)核

實時性能的優(yōu)越無可厚非性

功耗控制的把握性

出眾及創(chuàng)新的外設(shè)

集成整合的高度完善性

易于開發(fā)性卵凑,可以更好的快速投入市場使用

二、STM32平臺的選擇可靠性:

同平臺的項目開發(fā)胜臊,STM32是最優(yōu)之選勺卢,具體表現(xiàn)如下:

存儲空間和管腳應(yīng)用少到大存儲空間和多管腳的過度

對于苛求性能的應(yīng)用到電池供電的應(yīng)用

對于簡單應(yīng)用到高端應(yīng)用的過度

對軟件和引腳的高度兼容性,也使得其具有了靈活多變性象对。

STM32F103C8T6核心板接口電路圖如下所示:


圖3-1-1(a) STM32單片機核心板接口原理圖

STM32單片機實物圖如下圖所示:


圖3-1-1(b) STM32單片機核心板實物圖

3.1.2 28BYJ-48步進電機ULN2003驅(qū)動電路設(shè)計

步進電機是通過電脈沖信號的采集黑忱,再者就是將其轉(zhuǎn)換為角、線位移的開環(huán)控制電機勒魔,在正常的運行工作下甫煞,電機的啟停是通過對脈沖信號的采集比較。什么是步距角呢冠绢?那就是通過驅(qū)動步進電機危虱,使其按照預(yù)定的角度和方向進行運動,通過位移量的控制從而使其達到對轉(zhuǎn)動方向和轉(zhuǎn)到角度的精確控制唐全,以此達到對太陽光采集達到最大值化埃跷。

現(xiàn)如今步進電機在機械蕊玷、數(shù)電模電等都已經(jīng)涉及。相比直流電機而言弥雹,則交流電機在常規(guī)雙環(huán)形脈沖信號電路所組成控制系統(tǒng)方可使用垃帅,其中涉及到了機械、電子等諸多專業(yè)知識剪勿。步進電機在系統(tǒng)中是作為執(zhí)行元件贸诚,卻在機電一體化行業(yè)得到了充分地認(rèn)可,同時而是被廣泛應(yīng)用在各種自動化控制系統(tǒng)之中厕吉。

系統(tǒng)中選用4相5線的5V步進電機酱固。

具體參數(shù)如下:

型號為28BYJ-48试幽。

直徑:28mm

電壓:5V

步進角度:5.625 x 1/64

減速比:1/64

單個重:0.04KG

使用普通uln2003芯片驅(qū)動升熊,配套開發(fā)板使用也是可以的,可以進行直接插接似忧。

具體驅(qū)動電路原理圖如下:


圖3-1-2(a) 驅(qū)動電路原理圖


圖3-1-2(b) 步進電機實物圖

3.1.3 按鍵電路設(shè)計

按鍵控制相當(dāng)于一種電子開關(guān)项钮,通過控制按鍵的閉合與斷開從而實現(xiàn)對電源腿短的控制班眯,其內(nèi)部原理主要是通過內(nèi)部的金屬彈簧片因受外力的作用而相對運動,按鍵在整個控制過程中占據(jù)著輸入的主導(dǎo)地位烁巫,使其達到人機交互的結(jié)果署隘,當(dāng)按鍵被人為按下的時候,所對應(yīng)的單片機引腳電平由高變?yōu)榈碗娖窖窍叮源诉_到對系統(tǒng)發(fā)出手動輸入指令磁餐。注意,按鍵個數(shù)可變阿弃。

其電路原理圖如下圖所示:

[WJ1]?

圖3-1-3(a) 按鍵電路原理圖

在整個電路里面诊霹,也可以把電阻作為上拉電阻,以此達到對按鍵信號輸出的穩(wěn)定性控制恤浪,按鍵的個數(shù)是可以根據(jù)實際需求對其進行適當(dāng)?shù)脑黾优c刪減畅哑。

[WJ2]?

圖3-1-3(b) 按鍵電路原理圖

3.1.4 光照檢測電路設(shè)計

本系統(tǒng)的感光元件是行業(yè)最新出現(xiàn)的光敏電阻元件,其制作而成的主要原材料是由硫化隔或者是硒化隔等半導(dǎo)體材料制成水由,工作原理是針對于內(nèi)光電效應(yīng)得以實現(xiàn)荠呐。在使用過程中電阻值會跟隨著外部的光照強度的不同而隨之呈現(xiàn)為正態(tài)分布,規(guī)律性變化砂客。依據(jù)本系統(tǒng)中使用到的光敏電阻泥张,針對于其的特殊性能,在現(xiàn)如今的如此高速發(fā)展的現(xiàn)代社會也將得到更為廣泛的用武之地鞠值,通過四個光敏電阻的串聯(lián)媚创,達到分壓的效果,同時也是起著對整個系統(tǒng)的一個保護作用彤恶。光敏電阻原理圖如下:

[WJ3]?

圖3-1-4(a) 光敏電阻原理

3.1.5 TFT觸摸彩屏1.44寸模塊

TFT(Thin Film Transistor)也被稱之為薄膜場效應(yīng)晶體管钞钙,隸屬于有源矩陣液晶顯示器之一鳄橘。然而對于TFT顯示器,像素通過點脈沖直接控制芒炼,相當(dāng)于對每個像素都有一個控制開關(guān)瘫怜,也因此這樣使得每個節(jié)點都是處于完全獨立的狀態(tài),然而也可以實現(xiàn)對它進行連續(xù)控制本刽,通過連續(xù)控制不僅提高顯示器的在使用中的反應(yīng)速度同時也可以實現(xiàn)對色階的顯示實現(xiàn)精確控制鲸湃。TFT液晶顯示屏的亮點是亮度好、對比度高等子寓。

全新LCD模塊暗挑,本模塊是通用型的TFTLCD模塊。

一斜友、該模塊有如下特點:

128×128的分辨率炸裆。

1.44寸彩屏。

驅(qū)動IC:ST7735蝙寨。

色彩深度:16位(65K色)晒衩。

二嗤瞎、接口定義

表 3-1-5 接口定義表

管腳順序

管腳定義

功能闡述

1

GND

電源接地端

2

VCC

電源正極

3

SCL

SPI時鐘輸入

4

SDA

SPI數(shù)據(jù)輸入

5

RES

屏得復(fù)位

6

DC

命令/數(shù)據(jù)選擇

7

CS

SPI片選輸入

8

BL

背光控制輸入

三墙歪、模塊實物圖如下圖所示:


圖3-1-5 顯示屏

3.1.6 太陽能發(fā)電路設(shè)計

太陽輻射能要通過光電效應(yīng)或者化學(xué)效應(yīng)來實現(xiàn)電能的轉(zhuǎn)換,那么我們首先就要使用到可以吸收太陽光的太陽能電池板(Solar panel)贝奇,其制作材料大部分依舊使用“硅”虹菲,對于其普通的干電池或者充電電池而言,最大的亮點則是節(jié)能環(huán)保零污染掉瞳。

一毕源、太陽能電池板結(jié)構(gòu)組成

1)超白玻璃是一種具有在高透明性的低鐵玻璃,透光率達到了驚人的91.5%陕习,晶瑩剔透霎褐、高貴典雅的特征,因此也被富裕了“水晶王子”的美稱该镣。

2)使用EVA作為固定鋼化玻璃和電池片的原材料冻璃,對于使用中的EVA材質(zhì)的好壞,這也會是直接影響到相關(guān)組件的使用壽命损合,當(dāng)相關(guān)組件在自然情況下是全部裸露在自然化環(huán)境中省艳,而空氣中的容易色變,從而影響組件的透光率嫁审。

晶體硅主要是分為多晶和單晶料是最主要的光伏材料跋炕,在市場中的占比也是驚人的達到了90%以上,然而在今后較長時間內(nèi)也是主要是以硅作為太陽能電池板的主要材料,可將其相當(dāng)不錯的未來可預(yù)見性律适。

實物圖如下圖所示:


圖3-1-6(a) 太陽能電池板實物圖

其電路接口原理圖如下圖所示:


圖3-1-6(b) 太陽能電池板發(fā)電接口原理圖

3.1.7 TP4056鋰電池充電模塊電路設(shè)計

TP4056鋰電池充電模塊是可以適用于USB電源和與適配器辐烂,其內(nèi)部采用PMOSFET架構(gòu)遏插,再使用了防倒充電電路,因此不需要外接隔離二極管纠修,防止電回流涩堤,TP4056是作為一種恒定電流/電壓的可持續(xù)性充電模塊,也是作為本次選擇的有力依據(jù)分瘾。為了防止因為高溫和大功率狀態(tài)下對芯片的影響胎围,選用TP4056可完成對電流大小的可控調(diào)節(jié)。

本模塊特點:

板載TP4056鋰電充電管理芯片德召。

USB接頭白魂,可完成直接電腦或者外設(shè)通過USB口直接上電。

IN+與IN-排針供電上岗。

輸入電壓范圍值:4V-8V福荸,輸出最大充電電流范圍值:1000mA。

充電時紅燈亮肴掷,充電完成藍燈亮敬锐。

TP4056鋰電池充電模塊接口原理圖如下圖所示,鋰電池并聯(lián)的電容是濾波作用呆瞻,保證鋰電池充電電壓的穩(wěn)定平穩(wěn)輸出台夺。

鋰電池充電模塊如下:


圖3-1-7(a) TP4056鋰電池充電模塊接口原理圖

TP4056鋰電池充電模塊實物圖如下圖所示:


圖3-1-7(b) 鋰電池充電模塊實物圖

3.1.8 USB-5V升壓模塊電路設(shè)計

本USB-5V升壓模塊,器件絲印為4X-NXH也稱之為HX3001痴脾,是一款高效輸出颤介、恒定頻率、PWM控制赞赖。其顯著特點是低壓0.9V低壓啟動滚朵,同時轉(zhuǎn)換效率高達94%,中等功率運用前域,可提供我電壓輸出規(guī)格辕近。此設(shè)計系統(tǒng)使用的既是升壓模塊將3.7V升壓到5V的電壓的轉(zhuǎn)換過程。

三匿垄、使用說明

本模塊USB母口輸出5V直流電壓移宅,如果需要外接5V電源線,可以直接充USB母口座的5V正極焊盤或者模塊正面特定位置電容一端跳線取線年堆。

實物圖如下:


圖3-1-8(a) 模塊5V跳線取線圖

USB-5V升壓模塊焊接時吞杭,可以直接用電源線直接焊接電源輸入端,也可以插入單排針焊接后插在PCB板或萬用板上变丧。

下圖就是USB-5V升壓模塊接口原理圖芽狗,當(dāng)我們將開關(guān)撥下后,系統(tǒng)中的升壓模塊得電開始正常工作痒蓬,隨之使3.3V鋰電池電壓升壓到5V童擎,相反則是升壓模塊不工作滴劲。電容的作用在系統(tǒng)中都是起著減小電壓波動,讓電壓更平穩(wěn)的輸出顾复。

接口原理圖如下:

[WJ4]?

圖3-1-8(b) USB-5V升壓模塊接口原理圖

USB-5V升壓模塊實物圖如下圖所示:


圖3-1-8(c)USB-5V升壓模塊實物圖

3.1.9 分壓電路設(shè)計

串聯(lián)分壓的原理:

在串聯(lián)電路班挖,不變的是電流大小處處相等,各個分支的電壓之和為電壓總和芯砸,即分電路電壓從始至終都小于總電壓萧芙,因此稱為分壓。

當(dāng)所采集到的電壓信號超過選擇的A/D模塊最大采集電壓值假丧,那么就在這時就需要采用分壓電阻的形式來解決因電壓過大而出現(xiàn)的溢出双揪。其電路原理圖如下圖所示:

;

圖3-1-9(a) 分壓電路原理圖



圖3-1-9(b) 分壓電路原理

3.2 STM32 單片機系統(tǒng)軟件設(shè)計

3.2.1 Keil程序開發(fā)環(huán)境

系統(tǒng)中所使用到的單片機開發(fā)環(huán)境是Keil,而與匯編相比包帚,C語言的閃光點則是在可維護性渔期、結(jié)構(gòu)性、可讀性渴邦、功能上疯趟,一目了然的邏輯框架,使得易學(xué)易用谋梭,在Keil的中信峻,有著C編譯器、鏈接器和庫管理等在內(nèi)的一整套而又完整開發(fā)方案章蚣,我們使用集成開發(fā)環(huán)境(μVision)站欺,把各個部分組合在一起姨夹。通過上面的基本詮釋選擇Keil那就是最后的選擇纤垂,最好的選擇。當(dāng)然了運行Keil軟件需要WIN98磷账、WINXP等操作系統(tǒng)都是可以的峭沦。其中Keil有以下特點:

Keil軟件可以支持在WIN7、WIN8以及WINXP等多種操作系統(tǒng)逃糟,這也是給編譯者程序員提供了及其豐富的庫函數(shù)與功能強大的開發(fā)工具吼鱼。

Keil實現(xiàn)從編輯到編譯到到連最后到調(diào)試的一整套開發(fā)流程。

Keil軟件界面如下圖所示:


圖3-3-2 Keil uVision5開發(fā)界面圖

3.2.2 STM ISP程序燒錄

STM ISP是用于stm32進行程序的燒錄軟件绰咽,可以實現(xiàn)通過直接下載單片機所用程序菇肃,同時也是完全支持編程的編寫、程序的校驗等取募。單片機開發(fā)板琐谤、下載器和PC連接完成后,第一步打開軟件并選擇對應(yīng)的串口號玩敏,再者就是選擇目標(biāo)程序文件對應(yīng)所在的地址斗忌,最后鼠標(biāo)單擊“開始變成(P)就可以完成對程序的下載”质礼。

具體下載界面如下圖所示:


圖3-3-3 燒錄軟件下載界面

3.2.3 CH340串口程序燒寫模塊介紹

CH340串口燒寫模塊,通過USB接口相接织阳,這使得可以實現(xiàn)與任何一臺筆記本電腦的完成對STC系列單片機的程序燒寫眶蕉,通過此下載器的高性能和低成本的絕對優(yōu)勢,顯然在本次STC系列單片機中的應(yīng)用也將表現(xiàn)得格外獨到唧躲。

一造挽、CH340串口燒寫模塊特點:

支持 USB多種通信,非單一固定通信弄痹。

全面支持WIN98刽宪、VISTA、WIN7 等多種現(xiàn)目前常見的操作系統(tǒng)界酒,適應(yīng)性強圣拄。

采用USB接口直接供電。

在對芯片編程時毁欣,可自行供電也可以從USB口來獲電庇谆。

新程序的編寫不影響目標(biāo)板的程序運行。

投射范圍廣凭疮,對于STC全系列芯片燒錄支持的饭耳。

輸出電壓接口使用編程器提供3.3V與5V。

速度更快更穩(wěn)定执解。

使用進口原裝芯片寞肖,使得其能夠在能高速穩(wěn)定編程。

模塊如下圖所示:


圖3-3-4(a) CH340串口燒寫模塊

二衰腌、CH340串口燒寫模塊引腳說明

TXD 接單片機的RXD引腳

RXD 接單片機的RXD引腳

GND 接GND新蟆。

三、CH340串口燒寫模塊

具體接線圖如下表所示:

表3-4-4(b) CH340串口燒寫模塊與單片機接線

CH340模塊

單片機開發(fā)板

TXD

引腳PA10

RXD

引腳PA9

GND

GND


STC11F16XE單片機開發(fā)集成環(huán)境:Keil

單片機下載上位機軟件:STM ISP下載器MCUISP

PCB繪圖軟件:dxp

流程圖繪畫

整個系統(tǒng)使用了以STM32F103C8T6單片機作為核心板右蕊、太陽能板琼稻、鋰電池充電、穩(wěn)壓電路饶囚、光敏采集電路帕翻、驅(qū)動電路、升壓穩(wěn)壓模塊萝风、步進電機嘀掸、按鍵電路組成。整個系統(tǒng)共計有光敏采集板與主控板和兩塊板子规惰,以對應(yīng)的連接線進行相互連接睬塌。其中光敏采集板主要放置光敏傳感器,模擬太陽能板的運作;另外的主控板起著對顯示器衫仑、電源接通管理梨与、按鍵接通控制以及步進電機的相關(guān)驅(qū)動。

具體控制展現(xiàn)如下:

一文狱、太陽能板將太陽光能進行收集粥鞋,收集的同時進行光能與電能的轉(zhuǎn)換,通過電路的穩(wěn)壓過程瞄崇,將電傳遞給備用電池進行電量的儲存呻粹,在干鋰電池經(jīng)過升壓模塊和穩(wěn)壓模塊穩(wěn)壓到5V給整個系統(tǒng)供電,有單獨的電源控制開關(guān)可以進行電源的通斷控制苏研。在給設(shè)備系統(tǒng)進行上電后等浊,系統(tǒng)最初的默認(rèn)形式為隨太陽運動而運動的“自動模式”,還有就是可以通人為控制改為“手動模式”[9]也是可行的摹蘑。

二筹燕、在系統(tǒng)通電的情況下不管是屬于自動還是手動模式,此時的光敏電阻都會采集光線強度衅鹿,并且在顯示屏上面進行完美的顯示出來撒踪,其中顯示的效果為上、下大渤、左制妄、右四個方位。通過兩個步進電機驅(qū)動來完成上下左右運動泵三,將兩個步進電機焊接在一塊形成了一個角度多自由度的整體耕捞。兩個電機都是通過連接線與主板進行的連接,通過光敏電阻對光強度的采集獲得四個方位的不同關(guān)照強度值烫幕,最后通過與預(yù)計值的比較俺抽,最后來確定電機的運動軌跡[10]。

三纬霞、其中以“自動模式”為例:在自動追尋的過程中凌埂,會自動判斷光的強高度的大小,若下面光照強度大于上面光照強度诗芜,STM32單片機就會直接驅(qū)動上端電機向下翻轉(zhuǎn);以便于在下午太陽西落的時候埃疫,獲得更多的關(guān)照伏恐,若上面光照強度大于下面光照強度,STM32單片機就會直接驅(qū)動上端步進電機向上進行運動[11]栓霜;若上下兩個方位的光照強度均是大小相差無幾翠桦,那么上端步進電機則不進行任何的動作。接下來就是對于當(dāng)上下光照均勻左右運動的情況,若右方位的光照強度大于左方位的情況下销凑,STM32單片機就直接驅(qū)動下方位第一個步進電機向左方位一定角度轉(zhuǎn)動[12]丛晌;若左方位的光照強度大于右方位的光照強度,STM32單片機就直接驅(qū)動下方位第一個步進電機向左方位進行運動[13]斗幼;當(dāng)左右方位采光度也保持幾乎均應(yīng)的時候光照澎蛛,那么下方位的第一個電機也將保持不動。那么此時此刻設(shè)備的狀態(tài)將是完全的禁止蜕窿,STM32單片機將不對電機給出任何的運動指令[14]谋逻。

三、也可以切換為“手動模式”狀態(tài)進行使用按鍵手動來完成設(shè)備狀態(tài)的切換桐经。四個按鍵對應(yīng)控制電機完成:上毁兆、下、左阴挣、右的翻轉(zhuǎn)動作气堕。通過點動的方式來控制驅(qū)動步進電機的實際運動[15]。

四畔咧、當(dāng)太陽能采集受限的時候送巡,那么此時就使用外部電源USB充電模塊對其進行鋰電池上電,以保障系統(tǒng)的正常運行[16]盒卸。

1.44寸顯示屏顯示了光敏電阻采集光強的數(shù)值范圍為0-1000骗爆,在實際應(yīng)用過程中不管是處于自動還是手動模式下工作,光敏電阻都可以通過上蔽介、下摘投、左、右四個方位來進行光的采集虹蓄。其中通過兩個不同維度的步進電機驅(qū)動來實現(xiàn)犀呼,既是上下翻滾和左右轉(zhuǎn)動。上端步進電機與光敏采集板直接像粘接薇组,兩板通過連接線直接焊接而成外臂。當(dāng)然了對其的封裝也是很有必要的完善過程。

在原有的基礎(chǔ)上還可以進行與外部設(shè)備進行搭配使用律胀,比如在發(fā)電廠蓄電上的使用宋光、對魚塘中的制氧機進行提供供電、通過電紅外傳感器實現(xiàn)人走燈滅炭菌,藍牙遠(yuǎn)程控制路燈等罪佳。


參考文獻

張翠華,范小振.《能源新視野》. [M]. Boston: Artech House, 2017 , 5-8

舟丹.太陽能發(fā)展利用進入新時代[J].中外能源, 2013 , 56-60

羅運俊.《太陽能利用技術(shù)》化學(xué)工業(yè)出版社[M]. 化學(xué)工業(yè)出版社, 2015 , 6-10

葉偉慧,廖才,石金強,陳國康. 基于單片機的跟蹤式太陽能追光控制系統(tǒng)[J].北京:清華大學(xué)出版社, 2020, 01:44-45

郭欣. 太陽能雙軸跟蹤系統(tǒng)的研究與設(shè)計[J].裝備制造與教育, 2017, 03 , 6-9

楊亞龍. 太陽能電池板自動追光系統(tǒng)研究與實現(xiàn)[D]. 長安大學(xué), 2014 , 5-6

高緒昊. 太陽能跟隨系統(tǒng)設(shè)計[J].硅谷, 2013 02

劉卿卿,俞強,趙毛毛,王競雄. 基于STM32的光電式太陽跟蹤系統(tǒng)設(shè)計[J]. 儀表技術(shù)與傳感器, 2017, 01

李仁浩,龔思敏,楊帆. 基于單片機控制太陽能智能跟蹤控制系統(tǒng)的設(shè)計[J]. 儀表技術(shù)與傳感器.2015(04) :21-23

葉偉慧,廖才,石金強,陳國康.基于陽光方位探測器的太陽能收集板姿態(tài)調(diào)節(jié)系統(tǒng) [J]. 儀表技術(shù)與傳感器, 2011(03) :156-160

劉卿卿,俞強,趙毛毛,王競雄.基于STM32的光電式太陽跟蹤系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器.2017(01)

李仁浩,龔思敏,楊帆,劉松,李小兵.基于單片機控制太陽能智能跟蹤控制系統(tǒng)的設(shè)計[J].儀表技術(shù)與傳感器.2015(04)

王定玲,夏美娟.太陽能自動跟蹤系統(tǒng)設(shè)計[J].江蘇科技信息. 2017(02)

申來明,楊亞龍.一種利用單片機實現(xiàn)太陽跟蹤的設(shè)計方法[J].現(xiàn)代電子技術(shù). 2014(10)

許義泉,王燕昌,王子文,慕松.赤道坐標(biāo)系下新型太陽能自動跟蹤裝置設(shè)計[J].機械設(shè)計與制造. 2013(09)

閆云飛,張智恩,張力,代長林.太陽能利用技術(shù)及其應(yīng)用[J].太陽能學(xué)報. 2012(S1)

王陽.太陽能電池板追光系統(tǒng)的研究[D].沈陽工業(yè)大學(xué).2017

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

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

Du Xiaoqiang, Li Yuechan, Wang Pengcheng, et al. Design and optimization of solar tracker with U-PRU-PUS parallel mechanism[J]. 2021, 155:104107


附錄Ⅰ系統(tǒng)PCB如下:


附件圖 0–1主控板PCB


附件圖 0–2光敏PCB


附錄II部分程序

#include "my_include.h"

char dis0[25];//液晶顯示暫存數(shù)組

char dis1[25];//液晶顯示暫存數(shù)組

#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 //轉(zhuǎn)動一個正角度

#define ZHUANDONG_FZ? -50 //轉(zhuǎn)動另一個方向轉(zhuǎn)動

int lighVla_left = 0;//ad采集結(jié)果 1??

int lighVla_up = 0;//ad采集結(jié)果

int lighVla_right = 0;//ad采集結(jié)果

int lighVla_down = 0;//ad采集結(jié)果

float batteryVolt = 0;//鋰電池電壓ad采集結(jié)果

float BatCap=80;?? ??? ??? ? //容量初始化

unsigned char disFlag = 0;//更新顯示

unsigned char setMode =0;//設(shè)置模式

unsigned char rememberMode =0xff;//記錄上一次設(shè)置狀態(tài)

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(); //校準(zhǔn)已經(jīng)包括再此函數(shù)中 先執(zhí)行LCD_Init();? 觸摸校準(zhǔn)調(diào)用顯示?

??? LCD_Clear(Color16_BLACK);//清全屏

??? BACK_COLOR=Color16_BLACK;

??? FRONT_COLOR=Color16_LIGHTGRAY; disYplace=0; //顯示所在行遞增變量? ???

??? MyLCD_Show(2,disYplace++,"雙軸追光系統(tǒng)");//顯示???

??? FRONT_COLOR=Color16_LIGHTBLUE;

??? MyLCD_Show(1,disYplace++,"光照參數(shù): ");//顯示?

??? MyLCD_Show(4,disYplace++,"上: ");//顯示???

??? MyLCD_Show(1,disYplace,"左: ");//顯示?

??? MyLCD_Show(9,disYplace++,"右: ");//顯示???

??? MyLCD_Show(4,disYplace++,"下: ");//顯示???

??? MyLCD_Show(1,disYplace++,"設(shè)置: ");//顯示? ??? ???

??? 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 ) //調(diào)整向強光方向轉(zhuǎn)動

??? ??? ??? ??? ??? ??? {My_StepMotor_RotateAngle(0,ZHUANDONG_ZZ);}

??? ??? ??? ??? ??? ??? else if((lighVla_right - lighVla_left )>RONGCHAZHI_UD )//調(diào)整向強光方向轉(zhuǎn)動

??? ??? ??? ??? ??? ??? {My_StepMotor_RotateAngle(0,ZHUANDONG_FZ);}

??? ??? ??? ??? ??? ??? else {My_StepMotor_Stop(10);}


??? ??? ??? ??? ??? ??? if((lighVla_up - lighVla_down)>RONGCHAZHI_UD ) //調(diào)整向強光方向轉(zhuǎn)動

??? ??? ??? ??? ??? ??? {My_StepMotor_RotateAngle(1,ZHUANDONG_ZZ);}

??? ??? ??? ??? ??? ??? else if((lighVla_down - lighVla_up )>RONGCHAZHI_UD )//調(diào)整向強光方向轉(zhuǎn)動

??? ??? ??? ??? ??? ??? {My_StepMotor_RotateAngle(1,ZHUANDONG_FZ);}??? ???

??? ??? ??? ??? ??? ??? else? {My_StepMotor_Stop(10);} ???

??? ??? ??? ??? ??? ??? break;

??? ??? ??? case 1: //手動模式 ??? ??? ??? ??? ??? ???

??? ??? ??? ??? ??? ??? if(KeyIsPressed(KEY_1))//按鍵按下

??? ??? ??? ??? ??? ??? {

??? ??? ??? ??? ??? ??? ??? My_StepMotor_RotateAngle(0,ZHUANDONG_ZZ); //轉(zhuǎn)動 度數(shù) 正值一個方向 負(fù)值另一個方向

??? ??? ??? ??? ??? ??? }

??? ??? ??? ??? ??? ??? else if(KeyIsPressed(KEY_3))//按鍵按下

??? ??? ??? ??? ??? ??? {

??? ??? ??? ??? ??? ??? ??? My_StepMotor_RotateAngle(0,ZHUANDONG_FZ);//轉(zhuǎn)動 度數(shù) 正值一個方向 負(fù)值另一個方向

??? ??? ??? ??? ??? ??? }?? ???

??? ??? ??? ??? ??? ??? else {My_StepMotor_Stop(0);}?? ??? ???

??? ??? ??? ??? ??? ??? if(KeyIsPressed(KEY_2))//按鍵按下

??? ??? ??? ??? ??? ??? {

??? ??? ??? ??? ??? ??? ??? My_StepMotor_RotateAngle(1,ZHUANDONG_FZ);//轉(zhuǎn)動 度數(shù) 正值一個方向 負(fù)值另一個方向

??? ??? ??? ??? ??? ??? }?? ??? ??? ??? ??? ???

??? ??? ??? ??? ??? ??? else if(KeyIsPressed(KEY_4))//按鍵按下

??? ??? ??? ??? ??? ??? {

??? ??? ??? ??? ??? ??? ??? My_StepMotor_RotateAngle(1,ZHUANDONG_ZZ);//轉(zhuǎn)動 度數(shù) 正值一個方向 負(fù)值另一個方向

??? ??? ??? ??? ??? ??? }

??? ??? ??? ??? ??? ??? else {My_StepMotor_Stop(10);}?

??? ??? ??? ??? ??? ??? break;

??? ??? ??? default: break; ???

??? ??? }

??? ??? lighVla_left =1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_0)/4096;?? ??? lighVla_up = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_1)/4096; ??? ??? lighVla_right = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_2)/4096; ??? ??? lighVla_down = 1000 - 1000*My_ADC_GetValue(ADC1,ADC_Channel_3)/4096; ??? ??? 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;//記錄設(shè)置模式

??? ??? ??? ??? 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);//顯示 ??? ??? ??? ???

??? ??? }

??? }?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???

}??


上面完成了方案論證黑低,系統(tǒng)設(shè)計赘艳,現(xiàn)在應(yīng)該加一章作為測試章,詳細(xì)闡述測試使用的環(huán)境,測試方案框圖蕾管,測試步驟枷踏,測試數(shù)據(jù)記錄成表格,做測試結(jié)果分析掰曾,總結(jié)判斷是否達到預(yù)期目標(biāo)

比如旭蠕,追光的基本功能測試結(jié)果是什么樣,不同光強下系統(tǒng)的旋轉(zhuǎn)方式是怎么樣的婴梧,連續(xù)測量N次下梢,每次的數(shù)據(jù)記錄在表中是什么樣的等等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市塞蹭,隨后出現(xiàn)的幾起案子孽江,更是在濱河造成了極大的恐慌,老刑警劉巖番电,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岗屏,死亡現(xiàn)場離奇詭異,居然都是意外死亡漱办,警方通過查閱死者的電腦和手機这刷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娩井,“玉大人暇屋,你說我怎么就攤上這事《蠢保” “怎么了咐刨?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扬霜。 經(jīng)常有香客問我定鸟,道長,這世上最難降的妖魔是什么著瓶? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任联予,我火速辦了婚禮,結(jié)果婚禮上材原,老公的妹妹穿的比我還像新娘沸久。我一直安慰自己,他們只是感情好华糖,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布麦向。 她就那樣靜靜地躺著,像睡著了一般客叉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天兼搏,我揣著相機與錄音卵慰,去河邊找鬼。 笑死佛呻,一個胖子當(dāng)著我的面吹牛裳朋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吓著,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼鲤嫡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绑莺?” 一聲冷哼從身側(cè)響起暖眼,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纺裁,沒想到半個月后诫肠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡欺缘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年栋豫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谚殊。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡丧鸯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫩絮,到底是詐尸還是另有隱情丛肢,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布絮记,位于F島的核電站摔踱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怨愤。R本人自食惡果不足惜派敷,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撰洗。 院中可真熱鬧篮愉,春花似錦、人聲如沸差导。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽设褐。三九已至颠蕴,卻和暖如春泣刹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背犀被。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工椅您, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寡键。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓掀泳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親西轩。 傳聞我的和親對象是個殘疾皇子员舵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容