新DiFi第11課光敏電阻


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

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

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

使用Jump直接將A0和[PhotoR](光敏電阻)接上。

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

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

預設INPUT是低電位,但是有光亮時應該是高電位1024,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)

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

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

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

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

二、變大變小隨我變

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

預設INPUT是低電位,但是有光亮時應該是高電位1024,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)

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

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

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

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

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

三、光敏電阻調整LED亮度

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

 

使用Jump直接將A0和[PhotoR](光敏電阻)、D7和LEDG兩兩接上。

由數位腳位D7來控制類比輸出電壓,控制LED燈的亮度。

預設INPUT是低電位,但是有光亮時應該是高電位1024,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)

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

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

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

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

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

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

程式下載調整LED亮度.sb2

四、自動控制路燈

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

預設INPUT是低電位,但是有光亮時應該是高電位1024,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)

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

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

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

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

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

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

五、打擊樂

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

預設INPUT是低電位,但是有光亮時應該是高電位1024,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)

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

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

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

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

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

程式下載打擊樂.sb2

延伸:

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

六、演奏歌曲

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

預設INPUT是低電位,但是有光亮時應該是高電位1024,需要在設定之後加一個等待時間,讓程式有時間設定為高電位(1024)

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

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

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

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

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

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

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

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

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

程式下載演奏歌曲.sb2

延伸:

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

2.增加JUMP連接數位腳位8和蜂鳴器,改成使用蜂鳴器來演奏樂曲。

七、飛天小女警遊戲

光敏電阻接收到不同的光強度時,電阻值改變,電壓也會改變,類比腳A0也就讀到不同的電壓資料當手靠近或離開光敏電阻時會遮住光敏電阻的光,改變類比腳A0的值,運用這個特性偵測距離使飛天小女警移動位置。

當手靠近感測器,飛天小女警往下移動,當手遠離感測器,飛天小女警往上移動。

主要有三個人物色。

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

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

先將角色移到固定位置。

重複執行,角色移到X固定的座標,Y座標隨著光敏電阻讀到的值做改變(註),看起來就像在上下飛行。

切換造型,讓角色有變化。

其他兩個角色也是同樣的方式。

再搭配建築物、樹、雲等背景的移動和造型變化,看起來就像在飛行一樣了。

註:Y座標值會因使用環境而改變,請視環境亮度自行調整。

檔案下載:飛天小女警(光敏電阻).sb2

延伸:

1.加上計分、計時功能。

2.加上會移動的幸運星星,碰到幸運星星就加分。

3.碰到障礙物扣分

八、飛天小貓遊戲

類似上面飛天小女警遊戲,主角改成飛天小貓,加上會移動的幸運星星及子彈,碰到幸運星星就加分,碰到子彈就生命值減一,生命值零時就結束遊戲。

光敏電阻接收到不同的光強度時,電阻值改變,電壓也會改變,類比腳A0也就讀到不同的電壓資料,當手靠近或離開光敏電阻時會遮住光敏電阻的光,改變類比腳A0的值,運用這個特性偵測距離使飛天小貓移動位置。

當手靠近感測器,飛天小貓往下移動,當手遠離感測器,飛天小貓往上移動。

1.舞台

設定一開始的[得分]及[生命值]變數,播放背景音樂,檢查[生命值]為0就結束遊戲。

2.飛天小貓

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

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

先將角色移到固定位置。

重複執行,角色移到X固定的座標,Y座標隨著光敏電阻讀到的值做改變(註),看起來就像在上下飛行。

再搭配建築物、樹、雲等背景的移動和造型變化,看起來就像在飛行一樣了。

註:Y座標值會因使用環境而改變,請視環境亮度自行調整。

3.建築物

4.樹

5.雲

6.子彈

7.無敵星星

檔案下載:飛天小貓.sb2

九、應用:

製作方法:

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

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

—————————————

註:CDS 光敏電阻器

http://www.token.com.tw/big5/pdf/resistor/b5_cds_resistor_pgm.pdf

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

相關連結:

新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

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

宜蘭縣國小資訊小站

您可能也會喜歡…