Arduino第八課(按鍵)
宜蘭縣竹林國小 陳金助老師

按鍵:可以控制通路或斷路的開關,一般使用為按下為通路,放開為斷路。

小學生建議用2腳的 ,比較不會接錯方向。

一、直接控制LED亮或熄滅

 

利用Arduino的5V供電,經過按鍵接LED再接電阻再接GND,形成一個迴路

按下開關,形成通路,LED亮

鬆開開關,LED熄滅

注意:

如果是四腳的開關 ,請學生要注意方向,翻開背面,以中間的溝槽為分界,AB相連,CD相連,AB和CD不相通。

 二、運用Arduino的數位輸入來控制LED亮或滅

 

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

數位腳D11接紅色LED正極,再串接220歐姆電阻後接地(GND)。 

如果按鍵按下時,數位腳D8得到高電位,這時就輸出一個高電位給數位腳D11,讓紅色LED亮。

否則(沒有按鍵按下時),數位腳D8是低電位,這時就設置數位腳D11為低電位給,讓紅色LED熄滅。

程式下載:按鍵(數位輸入).sb2

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

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

數位腳D11接紅色LED正極,再串接220歐姆電阻後接地(GND)。

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

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

程式下載:按鍵(類比輸入).sb2

註:

1.這裡多一個[說類比腳位(A)0]的指令,讓我們可以看到類比腳A0的數值變化。

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

四、 按鍵控制LED+蜂鳴器

按鍵後LED亮而且蜂鳴器發出一聲Do

選擇上面的類比或數位輸入方式連接線路,另外再多接一個蜂鳴器線路發出聲音。

程式設計請參考上面二、三和第七課(蜂鳴器)

五、打擊樂

按鍵後LED亮,並使用電腦喇叭發出聲音

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

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

這次選敲鑼。

程式開始先讓判斷用的數位腳D8歸零。

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

如果按鍵按下時,就輸出一個高電位給數位腳D11,讓紅色LED亮,並發出鑼聲。

程式下載:按鍵(打擊樂).sb2

延伸:

將程式的[播放聲音]改為[彈奏鼓聲],可以選擇發出不同的[鼓聲]

程式下載:按鍵打鼓.sb2

如果將程式的[播放聲音],修改為使用[設定音樂為..],加上[彈奏音符…]的指令,就可以發出更悅耳的聲音了。

六、按鍵後螢幕上主角改變造形

選擇上面的數位輸入方式連接線路。

主程式跟上面一樣,再多加一個[下一個造型]指令,讓主角改變造型

七、搶答

 

將三組學生做的按鍵電路組合起來,更換LED為紅、黃、綠三顆LED。

判斷用的訊號線分別接D6、D7、D8

提供LED正極的杜邦線分別接D9、D10、D11

增加錄音效果

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

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

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

 

使用[新增積木指令]來新增[紅隊]、[黃隊]、[綠隊]三個判斷積木。

[紅隊]積木:先判斷D8是否有訊號,如果紅隊按了按鍵,D8就有訊號,執行下面的指令。讓紅色LED亮(D11高電位),播放[紅隊先答]的聲音,螢幕顯示[紅隊先答],停止所有程式執行,避免其他隊也按了按鍵,無法判斷哪一隊先按。
[黃隊]、[綠隊]積木,跟上面一樣,但是修改判段腳位及亮燈腳位。

程式開始先讓LED熄滅。

接下來不斷的判斷哪一組按下開關。

程式下載:按鍵搶答.sb2

八、按鍵電子琴

將上面五組學生做的按鍵電路組合起來,更換LED為紅、黃、綠、黃、綠五顆LED。

判斷用的訊號線分別接D2、D3、D4、D5、D6

提供LED正極的杜邦線分別接D7、D8、D9、D10、D11

再接一個蜂鳴器,訊號輸入為D12

使用[新增積木指令]來新增[Do]、[Re]、[Me]、[Fa]、[Sol]五個判斷積木。

[Do]積木:先判斷D2是否有訊號,如果按了第一個Do按鍵,D2就有訊號,執行下面的指令。讓黃色LED亮(D7高電位),接著讓蜂鳴器播出一個二分之一拍的Do,然後LED熄滅。

[Re]、[Me]、[Fa]、[Sol]等積木,也跟上面一樣,但是修改判段腳位、亮燈腳位及發出的聲音頻率。

程式開始先讓五顆LED熄滅。

接下來不斷的判斷哪一個按鑑被按下,就發出相對應頻率的聲音。

程式下載:按鍵電子琴.sb2

九、創作

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

使用適合的按鍵開關,將蜂鳴器改成大喇叭,加一些裝飾,就成了第一課的音樂樓梯了。

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

十、結合程式設計

直接用按鍵控制螢幕主角動作。

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

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

如果按鍵按下時,就說[啊!我被按了],並做效果。

程式下載:按鍵變形.sb2

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

十一、計數器

按一次按鍵,計數器加1,計算按鍵次數

 

做一個計數器變數。

一開始先將變數計數器值設為0

當按下按鍵時,D8會輸入一個高電位,就將計數器的值加1

程式下載:計數器.sb2

這個程式跟我們的需求是不符的,按一下會跳很多次。

要如何修正呢?

只要再加一個等待按鍵鬆開(D8=0)的指令就好了。

程式下載:計數器B.sb2

延伸:

1.增加倒數計時功能,限制時間內的按鍵次數

2.比賽看哪一組在時間內的按鍵按最多

3.將按鍵換成水銀開關,夾在頭上變成搖頭晃腦比賽

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

相關連結:

Arduino初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605771

Arduino課程準備
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599681

Arduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599732

Arduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599733

Arduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600369

Arduino第四課(LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600422

Arduino第五課(pwm)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600854

Arduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600855

Arduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602388

Arduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602288

Arduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602290

Arduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602291

Arduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605139

Arduino第十二課(離線執行)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605798

文章來源:Arduino第八課(按鍵) 由 roc 發表。