S3i第13課光敏電阻

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

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

類比腳A1用來接受類比電壓輸入,接收後顯示的值為0~1023,輸入端GND(低電位)時值為0,輸入端5V(高電位)時值為1023

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

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

建議剪一條厚紙板當作遮光物,方便操作。

WFduino預設腳位是OUTPUT,改設定成INPUT時需要在設定之後加一個等待時間,讓程式有時間轉換。

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

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

實際上因為環境亮度的關係,我的螢幕上只出現200到900的數值。

程式下載:

二、變大變小隨我變

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

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

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

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

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

程式下載:

三、光敏電阻調整LED亮度

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

使用Jump直接將A1和[cds](光敏電阻)、D11和LEDR兩兩接上。

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

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

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

設定腳位11類比輸出(讓RGB LED亮紅色),輸出的類比電壓大小由A1來決定。

類比腳位A讀到的值為0到1023,腳位11的類比輸出值為0到255,因此需要做公式轉換。

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

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

程式下載:

四、自動控制路燈

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

使用Jump直接將A1和[cds](光敏電阻)、D13和LEDY兩兩接上。

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

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

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

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

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

程式下載:

五、打擊樂

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

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

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

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

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

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

程式下載:

延伸:

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

六、演奏歌曲

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

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

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

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

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

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

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

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

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

程式下載:

延伸:

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

2.使用Jump直接將D6和BEEP蜂鳴器連接,使用蜂鳴器來演奏樂曲。

七、飛天小女警遊戲

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

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

主要有三個人物角色。

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

[等待1秒]:預設腳位是OUTPUT,需要轉換時間。

先將角色移到固定位置。

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

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

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

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

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

其他2個腳色:

建築物腳色:

樹腳色:

雲腳色:

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

延伸:

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

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

3.碰到障礙物扣分

八、飛天小貓遊戲

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

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

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

1.舞台

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

2.飛天小貓

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

[等待1秒]:預設腳位是OUTPUT,需要轉換時間。

先將角色移到固定位置。

重複執行,角色移到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

—————————–

相關連結:

S32E(Scratch3 to Esp8266)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113127/750388

S3i(Scratch3 to arduino iL學習板)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113128/750428

S3A(Scratch3 to Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113129/750447

arduino iL學習板課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/111175/727272

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

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

roc

宜蘭縣國小資訊小站

您可能也會喜歡…