DiFi第十一課光敏電阻

光敏電阻:利用光電導效應的一種特殊的電阻,簡稱光電阻,又名光導管。它的電阻和光線的強弱有直接關係。光強度增加,則電阻減小;光強度減小,則電阻增大。(摘自維基百科)  

一、讀取光敏電阻(類比腳A0)的資料:

類比腳A0用來接受類比電壓輸入,接收後顯示的值為1~1024,輸入端GND(低電位)時值為1,輸入端3.3V(高電位)時值為1024 

拿一條麵包線,一端接類比腳A0當作訊號輸入,一端接板子上寫[PhotoR](上圖標j)的插孔,上圖標示[J]就是 [光敏電阻 ]

再拿一條麵包線,一端接數位腳D7,一端接板子上寫[LEDG]的插孔(上圖標d),由數位腳位D7來控制輸出高電位(3.3V)或低電位(0V),燈

光敏電阻接收到不同的光強度時,電阻值改變,電壓也會改變,類比腳A0也就讀到不同的電壓資料。光亮(光強度最高)時為高電位顯示1024遮光(光強度減弱)時,光敏電阻的電阻值減少,數值變小

因為DiFi板子設計關係,建議剪一條厚紙板當作遮光物,方便操作。

[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

使用[說讀取類比腳位A0]指令,理論上螢幕上就會出現1到1024的數值

實際上因為亮度遮光的關係,我的螢幕上只出現三百多到1024的數值。

程式下載: 讀光敏電阻.sb2

二、變大變小隨我變

使用光敏電阻調整腳色(人物、圖片)大小。

[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

將大小設定為類比腳位A0得到的值。

理論上因為讀到的值為1到1024,所以轉換時要將得到的值除以10.24,才是正確的百分比。

實際上因為亮度關係,您可以自行調整比例。

程式下載讀光敏變大小.sb2

三、光敏電阻調整LED亮度

光強度不同,LED亮度也跟著改變。

[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

[腳位7模式設為OUTPUT]:設定腳位7模式為輸出。

重複執行,讀取A0的值,改變亮度。

設定腳位7類比輸出(讓LED亮綠色),輸出的模擬電壓大小由A0來決定。

類比腳位A0讀到的值為1到1024,腳位7的類比輸出值為0到255,因此需要做公式轉換。

增加一個[說讀取類比腳位(A)0]積木,可以顯示公式轉換結果,驗證公式是否正確。

用厚紙板在光敏電阻上揮動,改變光敏電阻接收到的光強度,就會改變電阻值,讓LED亮度改變。

程式下載調整LED亮度.sb2 

四、自動控制路燈

用LED模擬,晚上(天黑)路燈自動打開,天亮路燈自動熄滅

[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

[腳位7模式設為OUTPUT]:設定腳位7模式為輸出。

增加一個說的指令,來看看光強度和光敏電阻的接收情形。

用運算指令 [ <  ] 來判斷天空多暗才要啟動路燈亮起來。

光強度減弱,光敏電阻的電阻值減少,類比腳位A0讀到的值減少到判斷標準,就讓路燈(LED)亮起來。

測試時,用厚紙板靠近光敏電阻,改變光敏電阻接收到的光強度(天黑了),達到標準時路燈(LED)就亮起來。

程式下載自動控制路燈.sb2

五、打擊樂

當遮蔽光敏電阻時,電腦就發出一個聲音,一群人輪流遮蔽光敏電阻,讓電腦完成彈奏鼓聲。

[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

[腳位7模式設為OUTPUT]:設定腳位7模式為輸出。

一開始腳位7數位輸出1,讓LED熄滅。(共陽極LED)

重複執行,讀取A0的值,做動作。

用運算指令 [ <  ] 來判斷是否有人動作。

當有用厚紙板遮蔽光敏電阻時,A0的值小於900,就彈奏鼓聲,並讓LED亮綠色。

可以選擇發出不同的[鼓聲]

程式下載打擊樂.sb2

延伸:

各組選擇不同的鼓聲,配合節奏,大家一起彈奏(遮光),就可以完成打擊樂了。

六、演奏歌曲

當遮蔽光敏電阻時,電腦就發出一個聲音,一群人輪流遮蔽光敏電阻,讓電腦完成歌曲演奏。

[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

[等待1秒]:預設INPUT是低電位,但是DiFi板子上的光敏電阻照到光應該是高電位,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)。

先設定樂器種類,上圖的1是 鋼琴。

然後將歌曲音符編排好,加上偵測動作的[等待…]指令

用運算指令 [ <  ] 來判斷是否有人動作。

當有厚紙板遮蔽光敏電阻時,A0的值小於900,就彈奏一個音符。(實際值請自行調整)

這樣就可以依序將歌播完。

因為歌曲常常有一些重複的曲段,所以用積木來編排,節省程式長度,比較簡潔。

如果想要變換樂器,只要更改[樂器種類]就可以了。

程式下載演奏歌曲.sb2

延伸:

1.學生自由創作不同的音樂

2.增加一條麵包線連接數位腳位8和蜂鳴器,使用蜂鳴器來演奏樂曲。

七、應用:

製作方法:

http://mingshiuan.blogspot.com/2012/12/arduino.html

PS:他們用[紅外線感應器]當感應器,用[光敏電阻]應該也可以有效果。

———————————-

相關連結:

DiFi 課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/100870/660551

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433 

 

roc

宜蘭縣國小資訊小站

您可能也會喜歡…