1.光敏電阻的基本原理
光敏電阻也是電阻中的一種,其阻值随光強度的變化而變化。光敏電阻一般由硫化镉、硒化镉、硫化鋁等半導體材料制成,這些材料在特定波長的光照射下,載流子在電場的作用下漂移運動,其阻值迅速下降。
光敏電阻的阻值随光強度的增加而減小,光敏電阻在黑暗的環境下其阻值一般幾十K以上,甚至高達1MΩ到10MΩ。 如下圖為光敏電阻實測結果,在光線較充足的環境下其阻值3.049K,在較暗的環境下測量,其阻值為74.9K。
2、光敏電阻控制LED的原理
光敏電阻采樣的原理較簡單,光敏電阻直接串聯一個高精度的基準電阻1KΩ,再接5V電源即可,中間輸出接入單片機ADC采樣接口進行電壓采樣。
通過單片機IO口控制LED燈亮滅,實現白天光線較亮時,LED燈不亮;晚上光線較暗時,LED燈點亮。
其原理為,光線變化會影響光敏電阻阻值改變,從而導緻ADC接口采集到的電壓變化,單片機通過采集到的電壓數字量進行判斷是白天還是黑夜,當黑夜時,控制IO口輸出高電平點亮LED燈;當白天時,IO口輸出低電平,LED燈不亮。
A0引腳是ADC引腳(模拟輸入引腳),Arduino有6個模拟輸入引腳A0~A5,對于輸入引腳的參考電壓為0~5V,庫函數為analogRead(),讀取返回值,範圍為0~1023,線性關系,輸入0V時返回值為數字0,輸入5V時,返回值為1023,比如光敏電阻為4K時,ADC接口的電壓為4V,對應的數字量為4/5×1023=818,因此,analogRead()返回818,利用該值控制LED燈亮滅。
示例程序如下:
int led_0 = 13;
int lightSensor_0 = A0;
void setup() {
pinMode(led_0, OUTPUT);
pinMode(lightSensor_0, INPUT);
}
void loop() {
if(analogRead()>818)
digitalWrite(led_0,HIGH);
else
digitalWrite(led_0,LOW);
}
當采集到的數字量大于818時,即光敏電阻的阻值大于818時,認為光線較暗,LED的IO口輸出高電平,點亮LED燈;否則,認為光線較強,LED的IO口輸出低電平,LED燈熄滅。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!