我們面臨的最大危機(jī)是過(guò)度使用化石燃料導(dǎo)致的氣候變化,為了克服這些問(wèn)題,我們只有一個(gè)解決方案,那就是利用可再生能源。可再生能源是一種從大自然中提取的能源,不會(huì)對(duì)環(huán)境造成不良影響。最突出的可再生能源之一是太陽(yáng)能。來(lái)自太陽(yáng)的太陽(yáng)輻射被太陽(yáng)能電池板收集并轉(zhuǎn)化為電能。輸出電能取決于落在太陽(yáng)能電池板上的陽(yáng)光量。
傳統(tǒng)上,太陽(yáng)能電池板是固定的,太陽(yáng)在地平線上的移動(dòng)意味著太陽(yáng)能電池板在大多數(shù)時(shí)間都不能利用最大的能量。為了最大化太陽(yáng)能電池板的功率,電池板應(yīng)始終面向太陽(yáng)。在這個(gè)項(xiàng)目中,我們將制作一個(gè)太陽(yáng)跟蹤系統(tǒng),幫助太陽(yáng)能電池板產(chǎn)生最大的電力。在我們之前的一些文章中,我們建立了簡(jiǎn)單的系統(tǒng)來(lái) 跟蹤太陽(yáng)能電池板和其他太陽(yáng)能相關(guān)項(xiàng)目產(chǎn)生的電力。如果您正在尋找更多關(guān)于太陽(yáng)能的項(xiàng)目,您可以查看這些內(nèi)容。
太陽(yáng)能跟蹤器如何工作?
你一定想知道它是如何工作的?如前所述,太陽(yáng)能電池板應(yīng)面向太陽(yáng)以利用最大功率。所以,我們的系統(tǒng)有兩個(gè)步驟,第一是檢測(cè)太陽(yáng)的位置,第二是跟隨它移動(dòng)。
檢測(cè)太陽(yáng)的位置:
我們使用Arduino測(cè)量LDR的光強(qiáng)度,并比較落在兩個(gè) LDR 上的光強(qiáng)度。LDR 放置在太陽(yáng)能電池板的邊緣,如下圖所示。
根據(jù) LDR 上的光強(qiáng),我們向伺服電機(jī)發(fā)出信號(hào)以引起運(yùn)動(dòng)。當(dāng)落在右側(cè) LDR 上的光強(qiáng)度較大時(shí),面板會(huì)向右轉(zhuǎn),如果左側(cè)的強(qiáng)度較高,則面板會(huì)慢慢轉(zhuǎn)向左側(cè)。
考慮一個(gè)美麗的冬天早晨的場(chǎng)景,太陽(yáng)從東邊升起,因此它比西邊有更多的光強(qiáng)度,所以面板向東邊移動(dòng)。它整天都會(huì)跟蹤太陽(yáng),到了晚上,太陽(yáng)已經(jīng)向西移動(dòng),因此它的強(qiáng)度將比東方向更大,因此面板將面向西方向。
制作太陽(yáng)能跟蹤器所需的組件
1 x Arduino Uno
1 x 伺服電機(jī)
1 x 太陽(yáng)能電池板
2 個(gè) LDR
2 個(gè) 10k 電阻器
跳線
1 x MDF 板
伺服電機(jī):
伺服電機(jī)用于旋轉(zhuǎn)太陽(yáng)能電池板。我們使用伺服電機(jī)是因?yàn)槲覀兛梢跃_控制太陽(yáng)能電池板的位置,它可以覆蓋太陽(yáng)的整個(gè)路徑。我們使用的是可以使用 5 伏電壓運(yùn)行的伺服電機(jī)。
光敏電阻 (LDR):
光敏電阻由具有光敏特性的半導(dǎo)體材料制成,因此對(duì)光非常敏感。LDR 的電阻根據(jù)落在其上的光而變化,并且與光的強(qiáng)度成反比。也就是說(shuō),LDR 的電阻會(huì)在高強(qiáng)度光下增加,反之亦然。
太陽(yáng)能跟蹤器的示意圖和連接
電路的連接非常簡(jiǎn)單。在這里,我使用 Arduino Uno 作為控制器,并將 2 個(gè) LDR 分別連接到模擬引腳 A0 和 A1。Arduino的引腳9連接到伺服電機(jī)。由于我們使用了 5V 伺服電機(jī),因此我們不需要任何外部電源,因?yàn)樗薪M件都可以輕松地為 Arduino 本身供電。所有連接如下圖所示。
組裝太陽(yáng)能跟蹤器
組裝我們的太陽(yáng)能跟蹤器之前的第一步是建造基地。為了構(gòu)建基礎(chǔ),我將使用 MDF 板。第一步是從MDF板上切割并制作出12*8cm和12*2cm的矩形塊,如圖所示。
然后如圖所示將 12*2cm 的一塊垂直粘貼到 12*8cm 的一塊上。
下一步是將太陽(yáng)能電池板與伺服電機(jī)連接起來(lái),為此我們需要 L 形裝置。為此,我使用的是塑料片,你也可以通過(guò)彎曲塑料片或鋁片來(lái)制作它,最后將太陽(yáng)能電池板粘在你的裝置上。
注意:如果您要為大型太陽(yáng)能電池板制作跟蹤器,那么您應(yīng)該使用不同的材料制作底座,例如鋁或木頭。
現(xiàn)在,我們需要將 LDR 固定在太陽(yáng)能電池板的相對(duì)兩側(cè),為此,我將 LDR 粘在面板上。然后,我將 10k 電阻連接到兩個(gè) LDR 的任一引線上,電阻的另一側(cè)應(yīng)接地。這些充當(dāng)下拉電阻。LDR 的第二個(gè)端子直接連接到 5v 輸出。每個(gè) LDR 的輸出,我將它連接到 Arduino 的 A1 和 A2 引腳。
下一步是連接伺服電機(jī),伺服電機(jī)有三根線,即地線、V_in 和信號(hào)線。我將 V_in 引腳連接到 Arduino 的 5 伏,接地到公共地,信號(hào)線連接到 Arduino 的引腳 9。這就是電路的全部?jī)?nèi)容。
現(xiàn)在,我們所要做的就是組裝一切。首先,我將 Arduino 粘在底板上。然后我用膠槍將伺服電機(jī)連接到垂直部分。最后,我用伺服電機(jī)的手固定了太陽(yáng)能電池板,并用螺絲固定。
讓我們看看代碼是如何工作的?
這個(gè)項(xiàng)目的完整代碼可以在這個(gè)頁(yè)面的底部找到。編寫代碼之前的第一步是下載伺服庫(kù)。我們需要一個(gè)伺服庫(kù)來(lái)控制伺服的運(yùn)動(dòng)。該程序的分步說(shuō)明如下。
?
#include <伺服.h> 伺服伺服;
?
首先,我包含了伺服庫(kù)并創(chuàng)建了一個(gè)伺服對(duì)象并將其命名為“伺服”。
?
int 東 LDR = 0; int westLDR = 1; 詮釋東= 0; 詮釋西= 0; 整數(shù)錯(cuò)誤 = 0;
?
在這里,我為 LDR 分配了模擬引腳 A0 和 A1 引腳,并聲明了傳感器值的變量。
?
int校準(zhǔn)= 0;
?
此變量用于校準(zhǔn)系統(tǒng),如果您在兩側(cè)使用完全相同的 LDR,則可以將其保留為零。但是如果您使用不同的 LDR,那么您應(yīng)該使用它來(lái)校準(zhǔn)。要進(jìn)行校準(zhǔn),請(qǐng)按照下一段中的說(shuō)明進(jìn)行。
串行打印傳感器值并在中午檢查每個(gè)傳感器的讀數(shù),或在太陽(yáng)能電池板正上方放置一個(gè)光源。如果讀數(shù)顯示相同的值,那么您可以保持原樣,如果顯示有任何差異,那么您必須在此處復(fù)制這些值。
?
int 伺服位置 = 90;
?
該變量用于存儲(chǔ)伺服位置。
?
無(wú)效設(shè)置() { 伺服.attach(9); }
?
在該部分中,我將伺服引腳定義為引腳 9
?
東=校準(zhǔn)+模擬讀?。╡astLDR); 西 = 模擬讀?。╳estLDR);
?
在循環(huán)部分,第一步是使用 Arduino 的模擬讀取功能讀取 LDR 值并將其存儲(chǔ)在東西變量中。
?
如果(東<350 && 西<350) { 而(伺服位置<=150) { 伺服位置++; 伺服寫入(伺服位置); 延遲(100); }
?
如果條件是將太陽(yáng)能電池板轉(zhuǎn)回東側(cè),即如果兩個(gè) LDR 都讀取低值,那么太陽(yáng)能電池板就會(huì)向東側(cè)移動(dòng)。
?
錯(cuò)誤 = 東 - 西;
?
在這里,我們計(jì)算東西方讀數(shù)之間的差異。如果誤差值為正,則意味著東方的光強(qiáng)度更高,如果誤差值為負(fù),則西方的光強(qiáng)度更高。所以,根據(jù)這個(gè)誤差值,我們可以將舵機(jī)旋轉(zhuǎn)到低強(qiáng)度側(cè)。
?
如果(錯(cuò)誤> 30) { 如果(伺服位置<=150) { 伺服位置++; 伺服寫入(伺服位置); } }
?
如果誤差為正且大于 30,則表示東側(cè)強(qiáng)度更大。因此,最初系統(tǒng)將檢查伺服的起始位置,如果小于 150 度,則向東旋轉(zhuǎn)。您可以根據(jù)您的系統(tǒng)調(diào)整這些角度。
?
否則如果(錯(cuò)誤<-30) { 如果(伺服位置>20) { 伺服位置——; 伺服寫入(伺服位置); }
?
如果誤差為負(fù)且小于-30,則意味著西側(cè)更強(qiáng)烈,因此伺服旋轉(zhuǎn)到西側(cè)。
所以,這就是編碼?,F(xiàn)在您可以在您的 Arduino IDE 上打開(kāi)此代碼并將草圖上傳到您的 Arduino。
我希望你喜歡這個(gè)項(xiàng)目。它在現(xiàn)實(shí)生活中有很多應(yīng)用,并在許多太陽(yáng)能農(nóng)場(chǎng)和個(gè)人太陽(yáng)能利用設(shè)置中實(shí)施。您可以通過(guò)用高扭矩伺服電機(jī)替換 5V 伺服電機(jī)并使用繼電器連接并從外部電源為伺服供電來(lái)擴(kuò)大該項(xiàng)目的范圍。如上所述,如果您有更大的太陽(yáng)能電池板,那么您將不得不使用更堅(jiān)固的材料,例如鋁作為底座。
代碼
#include
伺服伺服 ;
int 東 LDR = 0;
int westLDR = 1;
詮釋東= 0;
詮釋西= 0;
整數(shù)錯(cuò)誤 = 0;
int校準(zhǔn)= 600;
int 伺服位置 = 90;
無(wú)效設(shè)置()
{
? 伺服.attach(9);
}
無(wú)效循環(huán)()
{
? 東 = 校準(zhǔn) + 模擬讀?。╡astLDR);
? 西 = 模擬讀取(westLDR);
? if (east < 350 && west < 350)
? {
??? while (servoposition <= 150)
??? {
????? servoposition++;
????? 伺服寫入(伺服位置);
????? 延遲(100);
??? }
? }
? 錯(cuò)誤 = 東 - 西;
? 如果(錯(cuò)誤 > 15)
? {
??? 如果(伺服位置<= 150)
??? {
????? 伺服位置++;
????? 伺服寫入(伺服位置);
??? }
? }
? else if (error < -15)
? {
??? if (servoposition > 20)
??? {
????? servoposition--;
????? 伺服寫入(伺服位置);
??? }
? }
? 延遲(100);
}
評(píng)論