《電子技術應用》
您所在的位置:首頁 > 電子元件 > 其他 > 教程:制作一個帶有Arduino的LDR的光傳感器

教程:制作一個帶有Arduino的LDR的光傳感器

2022-11-23
來源:circuitdigest
關鍵詞: LDR Arduino 光傳感器

  我們都希望我們的家用電器根據某些條件自動控制,,這稱為家庭自動化。今天我們要控制外面基于黑暗的光,,當外面黑暗時燈會自動打開,,當它變亮時關閉。為此,,我們需要一個光傳感器來檢測光線狀況,,并需要一些電路來控制光傳感器。這就像黑暗和明亮探測器電路,,但這次我們使用Arduino來更好地控制光線,。

  在這個電路中,我們正在制作一個使用帶有Arduino的LDR的光傳感器,,根據房間或外部區(qū)域的光線條件控制燈泡/ CFL,。

  所需材料

  Arduino UNO

  LDR (光相關電阻)

  電阻器 (100k-1;330ohm-1)

  指示燈 - 1

  繼電器模塊 - 5v

  燈泡/節(jié)能燈

  連接線

  面包板

  電路圖

poYBAGN3PqyANeGIAABxa2SlDOo730.png

  LDR

  LDR 是光相關電阻器。LDR由半導體材料制成,,使其具有光敏特性,。有很多類型,,但有一種材料很受歡迎,那就是硫化鎘(CdS),。這些LDR或光敏電阻器的工作原理是“光導率”?,F在這個原理說的是,每當光落在LDR表面(在這種情況下)時,,元件的電導就會增加,,或者換句話說,當光落在LDR表面時,,LDR的電阻就會下降,。LDR電阻降低的這一特性之所以得以實現,是因為它是表面使用的半導體材料的特性,。

99.JPG

  我們之前使用LDR制作了許多電路,,這些電路使用LDR根據需要使燈光自動化。

  使用Arduino的LDR控制LED的工作

  根據電路圖,,我們使用LDR和100k電阻制作了分壓器電路,。分壓器輸出饋送到 Arduino 的模擬引腳。模擬引腳感測電壓并為Arduino提供一些模擬值,。模擬值根據LDR的電阻而變化,。因此,當光落在LDR上時,,它的電阻會降低,,因此電壓值會增加。

  光強度 ↓ - 電阻↑ - 模擬引腳電壓↓ -燈亮起

  根據Arduino代碼,,如果模擬值低于700,,我們認為它是黑暗的并且燈打開。如果該值高于 700,,我們認為它是明亮的,,并且燈關閉。

  代碼說明:

  在這里,,我們定義了繼電器,、LED 和 LDR 的引腳。

  #define relay 10

  int LED = 9;

  int LDR = A0;

  將 LED 和繼電器設置為輸出引腳,,將 LDR 設置為輸入引腳,。

  pinMode(LED, OUTPUT);

  pinMode(relay, OUTPUT),;

  pinMode(LDR, INPUT),;

  通過 Arduino 的 A0 引腳讀取電壓模擬值。該模擬電壓將根據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 控制繼電器

98.JPG

  我們可以控制家庭燈或任何電氣設備,,而不是根據亮度和暗度控制LED,。我們所要做的就是連接繼電器模塊并設置參數以根據光的強度打開和關閉任何交流電器。如果該值低于 700,,這意味著它為暗,,則繼電器運行并且燈亮起。如果該值大于 700(表示其白天或明亮),,則繼電器將不運行,,指示燈保持熄滅。 在此處了解有關繼電器以及如何將交流設備連接到繼電器的更多信息,。

97.JPG

  #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”),;

  }

  }



更多信息可以來這里獲取==>>電子技術應用-AET<< 

mmexport1621241704608.jpg

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]