之前以可變電阻控制呼吸燈的循環時間,這篇要以光敏電阻(光電阻,光電池,光敏電阻)控制LED的明滅。
電路圖(Fritzing格式)與程式原始碼,可在此下載。
電路圖:
LED,長腳接腳位13,短腳接GND。
光敏電阻,一腳接5V,另一腳接到腳位A0與10k ohm電阻,電阻的另一腳接地。//
從腳位A0讀取光敏電阻的值。//
以腳位13控制LED。
無效設置(){
Serial.begin(115200);
pinMode(A0,INPUT);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
}
int pr_min = 400;
void loop(){
//以及analogRead()讀取光敏電阻的值,會回傳0~1023之間的值.int
pr = analogRead(A0);
//並且把值輸出到序列埠,請用手遮蔽光敏電阻,看看變化
.Serial.println(pr);
//若大於這個值,熄滅LED,若小於就點亮。
//請視需求修改pr_min.digitalWrite
(13,pr> pr_min?LOW:HIGH);
延遲(1000);
}
完成後,當外界光線強時,光敏電阻會讀到較大的值,LED就會熄滅;外界光線弱時,會讀到較小的值,LED就會亮起。
參考資料:
電路圖(Fritzing格式)與程式原始碼,可在此下載。
電路圖:
LED,長腳接腳位13,短腳接GND。
光敏電阻,一腳接5V,另一腳接到腳位A0與10k ohm電阻,電阻的另一腳接地。//
從腳位A0讀取光敏電阻的值。//
以腳位13控制LED。
無效設置(){
Serial.begin(115200);
pinMode(A0,INPUT);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
}
int pr_min = 400;
void loop(){
//以及analogRead()讀取光敏電阻的值,會回傳0~1023之間的值.int
pr = analogRead(A0);
//並且把值輸出到序列埠,請用手遮蔽光敏電阻,看看變化
.Serial.println(pr);
//若大於這個值,熄滅LED,若小於就點亮。
//請視需求修改pr_min.digitalWrite
(13,pr> pr_min?LOW:HIGH);
延遲(1000);
}
完成後,當外界光線強時,光敏電阻會讀到較大的值,LED就會熄滅;外界光線弱時,會讀到較小的值,LED就會亮起。
參考資料:
沒有留言:
張貼留言