S3i第9課按鍵(上)

按鍵:可以控制通路或斷路的開關。(註)

微動開關、水銀開關、滾珠開關、磁簧開關等也都是同樣的原理,可以控制電路的通路或斷路,也都可以適用本課的教學及範例。

一、基本測試

iL學習板有2個開關,分別接數位腳位D12和類比腳位A2

A、按鍵模組1:[KEY1]

使用Jump直接將D12和12KEY連接,接線圖如下:

按鍵一邊接5V,另一邊接電阻再接地(GND),中間拉一條訊號線到數位腳D12當作判斷輸入訊號。

按下開關,形成通路,數位腳位D12讀到高電位(1),鬆開開關,變成斷路,數位腳位D12讀到低電位(0)。

 

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

加上[說(讀取數位腳位(12))],可以從螢幕上看到讀取(輸入)的結果。

如果按鍵按下時,數位腳D12得到1(高電位)。

否則(沒有按鍵按下時),數位腳D12是0(低電位)。

程式下載

延伸:

1.請同學思考[重複無限次]這個積木可不可以去掉?

2.試試看去掉後的執行結果有什麼不同?

3.加上LED指令,讓按下按鍵時LED會亮,放開按鍵時LED會熄滅。

4.加上蜂鳴器指令,讓按下按鍵時蜂鳴器會響。

B、按鍵模組2:[KEY2]

使用Jump直接將A2和KEY2連接,接線圖如下:

按鍵一邊接5V,另一邊接電阻再接地(GND),中間拉一條訊號線到類比腳位A2當作判斷輸入訊號。

按下開關,形成通路,類比腳位A2讀到高電位(1023),鬆開開關,變成斷路,類比腳位A2讀到低電位(0)。

加上[說(類比腳位(A2))],可以從螢幕上看到讀取類比腳A2的結果。

如果按鍵按下時,類比腳A0得到1023。

否則(沒有按鍵按下時),類比腳A0得到0。

程式下載

延伸:

1.類比腳A0~A5一般用來接受類比電壓輸入,接收後顯示的值為0~1023。

實際測試結果,如果按鍵按下時,類比腳A0得到的值卻可能不是1023?

2.請同學思考[重複無限次]這個積木可不可以去掉?

3.試試看去掉後的執行結果有什麼不同?

4.加上LED指令,讓按下按鍵時LED會亮,放開按鍵時LED會熄滅。

5.加上蜂鳴器指令,讓按下按鍵時蜂鳴器會響。

二、運用數位輸入來控制LED

按下[按鍵1][KEY1],黃色LED亮燈,放開按鍵,LED熄滅。

數位腳D12用來接受數位輸入,接收後顯示的值為0或1,輸入端低電位時值為0,輸入端高電位時值為1

由數位腳位D13來控制輸出高電位或低電位,讓黃色LED燈亮或滅。

[腳位(12)模式設為(INPUT)]:先設定要用到的腳位,數位腳位D12為INPUT(輸入)

[等待1秒],讓程式有時間轉換。

[重複無限次],[說(讀取數位腳位12)],讓我們可以看到數位腳12的數值變化。

如果按下按鍵時,數位腳12得到1,這時數位腳D13就輸出高電位,讓黃色LED亮。

否則(沒有按鍵時),數位腳12得到0,這時就設置數位腳D13為低電位,讓黃色LED熄滅。

程式下載

延伸:

1.請同學思考[重複無限次]這個積木可不可以去掉?

2.試試看去掉[[重複無限次]這個積木後的執行結果有什麼不同?

3.使用JUMP連接數位腳位D6和蜂鳴器,讓按下按鍵時蜂鳴器也會同時發出聲音。

三、運用Arduino的類比輸入來控制LED

按下[按鍵2][KEY2],黃色LED亮燈,放開按鍵,LED熄滅。

如果按鍵按下時,類比腳A2得到1023,這時就輸出一個高電位給數位腳D13,讓黃色LED亮燈。

否則(沒有按鍵按下時),類比腳A0得到0,這時就設置數位腳D13為低電位,讓黃色LED熄滅。

[腳位A(2)模式設為(INPUT)]:先設定要用到的腳位,類比腳位A2為INPUT(輸入)

[等待1秒],讓程式有時間轉換。

[重複無限次],[說(讀取類比腳位A2)],讓我們可以看到類比腳位A2的數值變化。

如果按下按鍵時,類比腳位A2得到1023,這時數位腳D13就輸出高電位,讓黃色LED亮。

否則(沒有按鍵時),類比腳位A2得到0,這時就設置數位腳D13為低電位,讓黃色LED熄滅。

程式下載

註:

1.類比腳A0~A5一般用來接受類比電壓輸入,接收後顯示的值為0~1023。

實際測試結果,如果按鍵按下時,類比腳A0得到的值卻可能不是1023?

2.使用JUMP連接數位腳位D6和蜂鳴器,讓按下按鍵時蜂鳴器也會同時發出聲音。

四、彈奏鼓聲

按下[按鍵1][KEY1],黃色LED亮燈,並使用電腦喇叭發出鼓聲;放開按鍵,LED熄滅。

[重複無限次]:判斷按鍵是不是有按下按鍵,讀取數位腳位(12)的值。

如果按鍵按下時(數位腳位12獨到的值=1),數位腳13就輸出一個1(高電位),讓黃色LED亮,並[演奏節拍(2)(0.25)拍],彈奏(鼓聲)和(節拍)。。

可以選擇演奏不同的[節拍]。

程式下載

五、打擊樂

按下[按鍵1][KEY1],黃色LED亮燈,並使用電腦喇叭發出鑼聲;放開按鍵,LED熄滅。

將程式的[演奏節拍(2)(0.25)拍]改為[播放聲音],可以選擇發出不同的[聲音]

選取程式的[音效],點選新聲音的小喇叭圖示

選擇要播放的聲音檔(可以先點檔案內的小三角形試聽),按[確定]。

這次選[bell cymbal(敲鑼)]。

[重複無限次]:判斷按鍵是不是有按下按鍵,讀取數位腳位(12)的值。

如果按鍵按下時(數位腳位12獨到的值=1),數位腳13就輸出一個1(高電位),讓黃色LED亮,並播放音效[bell cymbal(敲鑼)]。

程式下載:

六、打擊樂(修正)

如果按下按鍵不放開,會發現鑼聲被中斷變成不像鑼聲。

修正如下:

改成[播放音效(…..)到底],可以讓鑼聲完整的播完。

程式下載:

七、播放音樂

按下[按鍵1][KEY1],黃色LED亮燈,並使用電腦喇叭發出音樂;放開按鍵,LED熄滅。

主程式同上。

選擇長一點的音效,變成按下按鍵播放一首音樂。

程式下載

延伸:

播放自己載入的音樂。

八、播樂器聲音

按下[按鍵1][KEY1],黃色LED亮燈,並使用電腦喇叭發出樂器的彈奏聲;放開按鍵,LED熄滅。

主程式同上。

使用[演奏樂器設為(…)],選擇不同的樂器

使用[彈奏音階(…)(…)拍],來設定(音階)和(節拍)。

程式下載

九、改變主角造形

按下[按鍵1][KEY1],黃色LED亮燈,並讓主角(小貓)改變造型及移動;放開按鍵,LED熄滅,動作停止。

主程式跟上面一樣。

再多加[造型換成下一個]及[播放音效(meow)]指令,當按下按鍵,播放音效並改變主角造型。

加上[移動5步],讓小貓看起來像在走路。

程式下載

十、向左走、向右走

按下[按鍵1][KEY1],黃色LED亮燈,並讓主角(小貓)改變造型及向左移動;

按下[按鍵2][KEY2],黃色LED亮燈,並讓主角(小貓)改變造型及向右移動;

放開按鍵,LED熄滅,動作停止。

使用[如果(…)那麼]來判斷,按下[按鍵1][KEY1]或[按鍵2][KEY2]

然後分別讓小貓向左走或向右走。

程式下載

十一、主角做特效

按下[按鍵1][KEY1],黃色LED亮燈,並讓主角(小貓)改變效果;放開按鍵,LED熄滅。

增加錄音效果

1.點選[音效],再點[麥克風]圖樣,再點黑色圓點開始錄音

圓點變成紅色,開始錄音,錄好,再按一下,完成錄音。

按[編輯]可以作一些簡單的剪輯。

   

不斷的判斷按鍵是不是有按下。

如果按鍵沒被按下,就說 [請按按鍵!]。

如果按鍵按下時,就說[啊!我被按了],並做魚眼效果及播放錄音音效。

程式下載

延伸:

1.改用其他特效試試看。

2.可再增加聲音效果,或變換造型,或移動…….

十二、演奏自編歌曲

按下按鍵就彈奏演奏自編歌曲。

主程式:

設定樂器種類,上圖[演奏樂器設為1] 是鋼琴。

[重複無限次]:判斷按鍵是不是有按下按鍵,讀取數位腳位(12)的值。

如果按鍵按下時(數位腳位12獨到的值=1),數位腳13就輸出一個1(高電位),讓黃色LED亮,並演奏自編歌曲。

否則就數位腳13輸出一個0(低電位),讓黃色LED熄滅。

製作音樂函式積木:

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

如果想要變換樂器聲音,只要更改[演奏樂器設為(…)]就可以了。

以小星星為例,主要分成3段,各用了2次。

主程式變得很簡短。

註:如果使用[製作一個函式積木]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。

程式下載

十三、按鍵演奏歌曲

按下按鍵就彈奏一個單音,重複按下按鍵,就可以演奏出一首完整的歌曲。

主程式:

設定樂器種類,上圖[演奏樂器設為1] 是鋼琴。

製作音樂積木:

[等待直到(讀取數位腳位(12)=1)],判斷按鍵是不是有按下按鍵,如果按下按鍵,就進行下一步[彈奏音階(…)(…)拍],發出一個音。

將歌曲音符編排好,當按下按鍵時,就彈奏一個音符。

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

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

如果想要變換樂器聲音,只要更改[演奏樂器設為(…)]就可以了。

以小星星為例,主要分成3段,各用了2次。

主程式變得很簡短。

註:如果使用[製作一個函式積木]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。

程式下載

延伸:

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

2.如何加快音樂節奏?

3.使用JUMP連接數位腳位D6和蜂鳴器,改成按下按鍵時使用蜂鳴器來演奏樂曲。

————————–

註:

微動開關、按鍵開關、磁簧開關等原理也都類似,可以控制電路的通路或斷路,也都可以參考本課的教學及範例。

水銀開關

資料來源:https://zh.wikipedia.org/wiki/%E6%B0%B4%E9%8A%80%E9%96%8B%E9%97%9C

水銀開關,又稱傾側開關,是電路開關的一種,以一接著電極的小巧容器儲存著一小滴水銀,容器中多數注入惰性氣體或直接真空。

注意:

水銀對人體及環境均有毒害,故此使用水銀開關時,請務必小心謹慎,以免破損導致水銀漏出;在不再使用時,也應該妥善處理。

滾珠開關:

可以控制通路或斷路的開關,也可用來偵測是否傾斜。

金屬小管子有兩隻腳,在管子內有一顆或2顆金屬球,當管子成直立狀態,也就是腳朝下時,金屬球會落下接觸管子內的兩個接觸點接通兩隻腳,形成通路,若管子傾斜到一定程度後,就會斷路。

圖片來源:https://bizweb.dktcdn.net/100/017/780/files/sw520.png?v=1457663311199

(圖片來源:https://www.google.com.tw/imgres?imgurl=http%3A%2F%2Fwww.blswitch.com%2FimageRepository%2Fbfbe8424-8c62-4274-b377-2e20941ac321.jpg&imgrefurl=http%3A%2F%2Fwww.blswitch.com%2Fpro%2FpmcId%3D22.html&docid=_TsMRczrkXut7M&tbnid=KN_apMOscuRCMM%3A&vet=10ahUKEwjT8pbstNDVAhXHVZQKHRfrBkEQMwgrKAgwCA..i&w=500&h=380&bih=633&biw=1280&q=%E6%BB%BE%E7%8F%A0%E9%96%8B%E9%97%9C&ved=0ahUKEwjT8pbstNDVAhXHVZQKHRfrBkEQMwgrKAgwCA&iact=mrc&uact=8 )

彈簧開關:

金屬小管子裡面,有一個導電彈簧及導電接腳,在晃動的時候,彈簧及導電接腳互相接觸,形成通路。

圖片來源:http://www.ksdkg.com/uploadfile/CKEditor/20093211504386.jpg

磁簧開關


(圖片來源:http://ming-shian.blogspot.tw/2013/01/blog-post.html )

微動開關

—————————–

相關連結:

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

宜蘭縣國小資訊小站

您可能也會喜歡…