WFduino第十課(光敏電阻)

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

一、光敏電阻和LED亮度

光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。

光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

另外接一組紅色LED(請參考第五課)。由數位腳D11來控制類比輸出的模擬電壓(PWM)大小。

1.讀取類比腳A0的資料:

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

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

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

2.變大變小隨我變

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

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

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

實際上因為亮度關係,可能不會出現到1023,您可以自行調整比例。

程式下載: 光敏電阻(變大小).sb2

3.光敏電阻調整LED亮度

設定腳位11類比輸出,輸出的模擬電壓大小由A0來決定。

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

增加一個說的指令,可以顯示公式轉換結果,驗證公式是否正確。

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

程式下載: 光敏電阻(調亮度).sb2

二、自動控制路燈

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

同上面一樣接線。

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

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

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

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

程式下載: 路燈.sb2

三、光吉他

依照光線亮度發出不同音調聲音

光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。

光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

另外接一組蜂鳴器(請參考第七課)。由數位腳D11來控制輸出的音調(頻率)。

設置數位腳位D11為音調輸出,輸出的音調(聲音頻率)由A0來決定。

用手在光敏電阻上揮動,改變光敏電阻接收到的光強度,就會改變電阻值,A0讀到的值改變,音調也跟著改變。

註:真正音符的頻率(赫茲)轉換有些複雜,這裡只簡單的讓學生體驗音調的改變。

程式下載: 光吉他.sb2

延伸:

將上面的裝置增加組數,就可以發出更多的音階,組成一個多音階的樂器。

可以將A0的值做一些運算,讓頻率改變。

四、打擊樂

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

光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。

光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。

LED可以不用接。

 

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

當有人遮蔽光敏電阻時,A0的值小於100,就彈奏鼓聲。

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

程式下載:光打擊樂.sb2

延伸:

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

五、演奏歌曲

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

先設定樂器種類,上圖的11是 薩克斯風。

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

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

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

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

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

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

程式下載:演奏歌曲.sb2

延伸:

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

2.多組光敏電阻組合,學生輪流遮蔽不同的光敏電阻,演奏一首歌

3.增加一組蜂鳴器,使用蜂鳴器來演奏樂曲。

六、創作:

將光敏電阻換成紅外線感應器(16課)(或超音波感應器(13課)),再加上大喇叭,就成了第一課的垃圾桶和資源回收箱了。

註:要真的實用還有一些細節要改進,例如:接線要堅固,加裝擴音線路才能讓喇叭發出夠大的聲音……….

七、應用:

製作方法:

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

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

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

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

文章來源:WFduino第十課(光敏電阻) 由 roc 發表。

作者: roc

宜蘭縣國小資訊小站