2013年9月8日 星期日

Arduino - 光感應LED製作

只要有光敏電阻,配上Arduino就能做出隨環境光源變化的有趣東西!

光敏電阻會隨著入射光的強度而調降電阻值,所以又稱光依賴電阻器(LDR)以及
光導體(Photoconductor)。光敏電阻中最流行的就是CdS(硫化鎘)元件,
恰好手邊就有一個 ~
俯視圖

側視圖
材料清單:
  • Arduino UNO REV3
  • USB接線
  • 光敏電阻        X1
  • 10K.歐姆電阻X1
  • 跳線若干
  • LED手電筒     X1
利用光敏電阻建構以下電路 :

右上方是被拆解掉的LED手電筒,預期會隨環境光源改變亮度(環境愈亮燈愈暗)。
手電筒是吃1.54V乾電池的,但實際輸出因為電阻關係,光強度會比較暗。

現在來點簡單的code :

const unsigned int OUTPUT_PIN = 9;

void setup() {
  // put your setup code here, to run once:  
}

void loop() {
  // put your main code here, to run repeatedly: 
  const int ligh = analogRead(A0);                //讀取A0的類比輸入,值預設為0~1023
  int intensity = map(ligh, 0, 1023, 255, 0);   //將0~1023的值轉換成255~0
  analogWrite(OUTPUT_PIN, intensity);     //以PWM的型式由第8數位PIN類比輸出
  delay(100);
}

將程式驗證後上傳Arduino : 

這次的光感測LED是拿手邊現成的LED手電筒改裝來的,
以後有機會入手小燈座&燈泡,就可以自己DIY一個光感測小夜燈了!
或者接繼電器變成當光線暗到一定程度就會自動開啟的小燈也不錯。

沒有留言:

張貼留言