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