我們都希望我們的家用電器根據(jù)某些條件自動控制,這稱為家庭自動化。今天我們要控制外面基于黑暗的光,當(dāng)外面黑暗時燈會自動打開,當(dāng)它變亮?xí)r關(guān)閉。為此,我們需要一個光傳感器來檢測光線狀況,并需要一些電路來控制光傳感器。這就像黑暗和明亮探測器電路,但這次我們使用Arduino來更好地控制光線。
在這個電路中,我們正在制作一個使用帶有Arduino的LDR的光傳感器,根據(jù)房間或外部區(qū)域的光線條件控制燈泡/ CFL。
所需材料
Arduino UNO
LDR (光相關(guān)電阻)
電阻器 (100k-1;330ohm-1)
指示燈 - 1
繼電器模塊 - 5v
燈泡/節(jié)能燈
連接線
面包板
電路圖
LDR
LDR 是光相關(guān)電阻器。LDR由半導(dǎo)體材料制成,使其具有光敏特性。有很多類型,但有一種材料很受歡迎,那就是硫化鎘(CdS)。這些LDR或光敏電阻器的工作原理是“光導(dǎo)率”?,F(xiàn)在這個原理說的是,每當(dāng)光落在LDR表面(在這種情況下)時,元件的電導(dǎo)就會增加,或者換句話說,當(dāng)光落在LDR表面時,LDR的電阻就會下降。LDR電阻降低的這一特性之所以得以實現(xiàn),是因為它是表面使用的半導(dǎo)體材料的特性。
我們之前使用LDR制作了許多電路,這些電路使用LDR根據(jù)需要使燈光自動化。
使用Arduino的LDR控制LED的工作
根據(jù)電路圖,我們使用LDR和100k電阻制作了分壓器電路。分壓器輸出饋送到 Arduino 的模擬引腳。模擬引腳感測電壓并為Arduino提供一些模擬值。模擬值根據(jù)LDR的電阻而變化。因此,當(dāng)光落在LDR上時,它的電阻會降低,因此電壓值會增加。
光強度 ↓ - 電阻↑ - 模擬引腳電壓↓ -燈亮起
根據(jù)Arduino代碼,如果模擬值低于700,我們認(rèn)為它是黑暗的并且燈打開。如果該值高于 700,我們認(rèn)為它是明亮的,并且燈關(guān)閉。
代碼說明:
在這里,我們定義了繼電器、LED 和 LDR 的引腳。
#define relay 10
int LED = 9;
int LDR = A0;
將 LED 和繼電器設(shè)置為輸出引腳,將 LDR 設(shè)置為輸入引腳。
pinMode(LED, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(LDR, INPUT);
通過 Arduino 的 A0 引腳讀取電壓模擬值。該模擬電壓將根據(jù)LDR的電阻增加或減少。
int LDRValue = analogRead(LDR);
給黑暗和明亮的條件。如果該值小于 700,則表示顏色較暗,LED 或指示燈亮起。如果該值大于 700,則它很亮,LED 或燈熄滅。
if (LDRValue <=700)
{
digitalWrite(LED, HIGH);
digitalWrite(relay, HIGH);
Serial.println("It's Dark Outside; Lights status: ON");
}
else
{
digitalWrite(LED, LOW);
digitalWrite(relay, LOW);
Serial.println("It's Bright Outside; Lights status: OFF");
}
使用 LDR 和 Arduino 控制繼電器
我們可以控制家庭燈或任何電氣設(shè)備,而不是根據(jù)亮度和暗度控制LED。我們所要做的就是連接繼電器模塊并設(shè)置參數(shù)以根據(jù)光的強度打開和關(guān)閉任何交流電器。如果該值低于 700,這意味著它為暗,則繼電器運行并且燈亮起。如果該值大于 700(表示其白天或明亮),則繼電器將不運行,指示燈保持熄滅。 在此處了解有關(guān)繼電器以及如何將交流設(shè)備連接到繼電器的更多信息。
#define relay 10
int LED = 9;
int LDR = A0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(LDR, INPUT);
}
void loop() {
int LDRValue = analogRead(LDR);
Serial.print("sensor = ");
Serial.print(LDRValue);
if (LDRValue <=700)?
{
digitalWrite(LED, HIGH);
digitalWrite(relay, HIGH);
Serial.println("It's Dark Outside; Lights status: ON");
}
else
{
digitalWrite(LED, LOW);
digitalWrite(relay, LOW);
Serial.println("It's Bright Outside; Lights status: OFF");
}
}
-
光傳感器
+關(guān)注
關(guān)注
3文章
169瀏覽量
29900 -
Arduino
+關(guān)注
關(guān)注
187文章
6458瀏覽量
186504 -
LDR
+關(guān)注
關(guān)注
0文章
98瀏覽量
7548
發(fā)布評論請先 登錄
相關(guān)推薦
評論