您的位置:首頁>正文

利用光敏電阻和伺服電機製作一款基於Arduino的太陽能跟蹤器

基於Arduino的太陽能跟蹤器

在這個項目中將利用兩個光敏電阻感知光線的變化, 控制舵機自動在太陽光變化的方向上旋轉, 太陽能電池板將始終跟隨太陽光並一直朝著太陽,

從而提供最大功率。

元件清單:

舵機 (sg90)

太陽能電池板

Arduino Uno

光敏電阻X 2

10K 電阻 X 2

電池 (9V)

光敏電阻是一種光敏感器件, 常用硫化鎘製作, 另外還有硒、硫化鋁、硫化鉛和硫化鉍等材料製作的光敏電阻。 這些材料具有在特定波長的光照射下, 其阻值迅速減小的特性。 當光照在它上面時, 它的電阻就會降低, 因此光敏電阻經常被用於光線探測電路。

光敏電阻

工作原理:

在太陽能電池板兩側分別放置兩個光敏電阻, 舵機用於旋轉太陽能電池板。 如果某一個光敏電阻的阻值下降, 舵機將帶動太陽能電池板旋轉, 調節光敏電阻的位置。 如果兩個光敏電阻的阻值同時下降, 則舵機不會轉動。 在這個Arduino太陽能跟蹤器中, Arduino採用9V電池供電, 其餘部分都是由Arduino供電。

電路連接圖:

電路連接圖

C語言代碼:

#include //包含舵機的庫

Servo sg90; //聲明一個Servo類型的變數sg90

int initial_position = 90; //定義一個初始位置

int LDR1 = A0; //連接光敏電阻引腳

int LDR2 = A1;

int error = 5;

int servopin=9;

void setup()

{

sg90.attach(servopin);

pinMode(LDR1, INPUT);

pinMode(LDR2, INPUT);

sg90.write(initial_position);

delay(2000);

}

void loop()

{

int R1 = analogRead(LDR1);

int R2 = analogRead(LDR2);

int diff1= abs(R1 - R2);

int diff2= abs(R2 - R1);

if((diff1

} else {

if(R1 > R2)

{

initial_position = --initial_position; //Move the servo towards 0 degree

}

if(R1

{

initial_position = ++initial_position; //Move the servo towards 180 degree

}

}

sg90.write(initial_position); // write the position to servo

delay(100);

}

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示