|
這個(gè)項(xiàng)目中將介紹一個(gè)新元件——光敏電阻。從名字可以看出,這個(gè)器件是依賴光作用的。在黑暗的環(huán)境中,光敏電阻具有非常高阻值的電阻。光線越強(qiáng),電阻值反而越低。通過(guò)讀取這個(gè)電阻值,就可以檢查光線的亮暗了。我們這里選用的是光敏二極管,光敏二極管其實(shí)就是光敏電阻中的一種,只是它還具有正負(fù)極性。
我們這次做的這個(gè)非常好玩,叫做感光燈。它能隨著光線明暗而選擇是否亮燈。這個(gè)光感燈非常適合用做夜晚使用的小夜燈。晚上睡覺(jué)的時(shí)候,家中燈關(guān)掉后,感光燈感覺(jué)到周圍環(huán)境變暗了,就自動(dòng)亮起。到了白天,天亮后,感光燈就又恢復(fù)到關(guān)閉的狀態(tài)了。
所需材料
- 1× 5mm LED燈
- 1× 220歐電阻
- 1× 10k電阻
- 1× 光敏二極管
- 1× 手電筒(可選)
STEP 1: 硬件連接
LED燈還是和以往一樣的接法。而光敏二極管是有正負(fù)極的,和LED一樣,也是遵循長(zhǎng)腳(+),短腳(-)的原則。還需注意的與光敏二極管相連的電阻是10k,而不是220Ω。
183338w0f1ofox42458ht4.jpg (167.81 KB, 下載次數(shù): 78)
下載附件
2017-4-6 03:39 上傳
STEP 2:輸入代碼
完成硬件連接后,打開(kāi)Arduino IDE,輸入下面這段代碼。- int LED = 13; //設(shè)置LED燈為數(shù)字引腳13
- int val = 0; //設(shè)置模擬引腳0讀取光敏二極管的電壓值
- void setup(){
- pinMode(LED,OUTPUT); // LED為輸出模式
- Serial.begin(9600); // 串口波特率設(shè)置為9600
- }
- void loop(){
- val = analogRead(0); // 讀取電壓值0~1023
- Serial.println(val); // 串口查看電壓值的變化
- if(val<1000){ // 一旦小于設(shè)定的值,LED燈關(guān)閉
- digitalWrite(LED,LOW);
- }else{ // 否則LED亮起
- digitalWrite(LED,HIGH);
- }
- delay(10); // 延時(shí)10ms
- }
復(fù)制代碼
下載完代碼后,LED燈會(huì)亮起,這時(shí),你需要拿一個(gè)手電筒照你的光敏二極管(用手機(jī)后置攝像頭的閃光燈應(yīng)該也可以),這時(shí)你會(huì)發(fā)現(xiàn)LED燈神奇般的自動(dòng)熄滅。但是,一旦你的手電筒移開(kāi),LED燈又再次亮起。
STEP 3:代碼回顧
這段代碼想必你一定能看的懂了吧?我就簡(jiǎn)單說(shuō)一下,可能不明白的地方。
我們之講LM35溫度傳感器的時(shí)候,也用到了用模擬口讀值。強(qiáng)調(diào)了,模擬量不需要輸入輸出模式。這里,也是同樣用模擬口用來(lái)讀取光敏二極管的模擬值。
一旦有光照射,讀出的模擬值就會(huì)減小,這里設(shè)定的上限值是1000。這個(gè)值可以按你需要的亮度來(lái)選取。選取方法:先把整個(gè)裝置放在你想讓LED關(guān)閉的一個(gè)環(huán)境下,然后打開(kāi)串口,查看串口顯示的值,把這個(gè)值替換掉代碼中的1000。從串口讀值,是調(diào)試代碼一種很好的方法。
STEP 4:硬件回顧
這里接觸了一種新元件——光敏器件。這類器件都是將光信號(hào)變成電信號(hào)的特殊電子元件。元件內(nèi)部有特殊的光導(dǎo)材料,外部用塑料或者玻璃封裝。光線照射在這類光導(dǎo)材料上時(shí),光敏器件的電阻值就會(huì)迅速變小。光敏元件有很多,光敏電阻,光敏二極管,光敏三極管等等。不過(guò)原理是差不多的。我們這里選用的是光敏二極管。
光敏二極管其實(shí)是光敏電阻中的一種。所謂二極管,就是有正負(fù)極的,所以在連線的時(shí)候也要注意正負(fù)極。
光敏電阻在黑暗的環(huán)境中,具有非常高阻值的電阻。光線越強(qiáng),電阻值反而越低。隨著兩端電阻值的減小,電壓也就相應(yīng)減小(從模擬口讀到的值也就變小,模擬口0~1023的值對(duì)應(yīng)是0~5V的電壓值)。
那電壓為什么會(huì)減小呢?那就要用到我們初中學(xué)的物理知識(shí)——分壓原理。讓我們看一個(gè)典型的分壓電路,看看它是如何工作的。
183929cr5n5oo5ls55r2g5.jpg (16.22 KB, 下載次數(shù): 92)
下載附件
2017-4-6 03:39 上傳
[輸入電壓Vin(我們這里也就是5V),連在兩個(gè)電阻上,只測(cè)量通過(guò)電阻R2的電壓Vout,其電壓將小于輸入電壓。計(jì)算R2兩端的Vout電壓公式是:
183929zmbec34bccrfmm3f.jpg (9.49 KB, 下載次數(shù): 80)
下載附件
2017-4-6 03:39 上傳
在我們這里,R1代表的就是10k電阻,R2代表的就是光敏二極管。本來(lái)R2在黑暗中,值很大很大,所以Vout也就很大,接近5V。一旦有光線照射的話,R2的值就會(huì)迅速減小,所以Vout也就隨之減小了,讀取的電壓值就小。通過(guò)上面這個(gè)公式可以看出, R1選取不能太小,最好在1k~10k左右,否則比值變化不明顯。
|
|