mblock第八課(按鍵)

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

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

一、直接控制LED亮或熄滅

 

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

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

鬆開開關,LED熄滅

注意:

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

如果沒有溝槽的,直接如上面的接線圖插入麵包板試試看,如果還沒按按鍵就會亮,那就拔起來轉90度再插下去,試試看是否變成需要按按鍵才會亮。

 

二、運用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

延伸:

1.兩段式開關,第一次按開關時,LED亮,再按一次時LED暗。

2.再加一組LED,按下按鍵,其中一個LED亮,放開按鍵換另一個LED亮。

四、 按鍵控制LED+蜂鳴器

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

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

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

程式下載:按鍵控制LED+蜂鳴器.SB2

五、打擊樂

按鍵後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.將按鍵換成水銀開關,夾在頭上變成搖頭晃腦比賽

十二、打地鼠

組合不同顏色LED和按鍵,看到那一個顏色的燈亮,就按那個燈旁的按鍵,按對加分,

按錯扣分。再加上計分和時間限制(倒數計時)

十三、反應測試

測試你的神經反應:

準備好時,按下按鍵,隨機時間後LED亮,看到亮燈,要立刻按下按鍵。螢幕上顯示你看到亮燈到按下按鍵的反應時間。

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

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

按綠旗後的說明

開始先讓紅燈熄滅,然後出現說明頁,等待按鍵開始。

如果按下按鍵,數位腳D8收到高電位就開始,貓熊出現。

要鬆開按鍵才開始隨機選擇亮燈時間,計時器歸零重新計時,並顯示時間,一直到再一次按下按鍵,停止程式。

程式下載:反應測試.sb2

十四、電子骰子

按下按鍵,LED開始變化不同顏色,鬆開按鍵,停在某一顏色。按鍵按下時間不同,最後停止時的顏色不同。

接RGB三色LED和一組按鍵。

按鍵電路中間拉一條訊號線到數位腳D8當作判斷輸入訊號,RGB三色LED分別接D9、D10、D11控制顏色變化

程式開始先確定按鍵沒有訊號(數位腳D8為低電位)

接著不斷的偵測有沒有按下按鍵。

如果有按按鍵就先關閉上次亮的顏色,然後隨機D9、D10、D11其中一個輸出高電位,那個顏色就亮起來。

鬆開按鍵,D8沒有訊號,隨機亮燈就停止。

程式下載:電子骰子.sb2

延伸:

1.學生先猜顏色,再按按鍵,看看是否猜對

六年級林辰皓、吳至勤同學作品

六年級藍培誠、四年級李盺澤同學作品。

2.比大小:紅色代表1,綠色代表2,藍色代表3,看看誰骰的比較大。

3.改接三組(或更多組)不同顏色的LED,製作更多顏色的電子骰子。

十五、兩段式開關

 

只有一個按鍵,第一次按下代表啟動,第二次按下代表停止。

第一次按下LED燈亮,第二次按下LED燈滅

程式下載:兩段式開關.sb2

 

十六、平交道緊急按鈕

上、下紅燈模擬平交道燈號,中間的綠、紅燈是火車燈號,緊急時按下「緊急按鈕」,火車燈號轉為紅燈,火車司機看到就趕快將火車停止。

六年級藍培誠同學作品。

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

相關連結:

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進階班課程目錄

Arduino第十三課(超音波感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620602

Arduino第十四課(搖桿)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620718

Arduino第十五課(人體紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620975

Arduino第十六課(主動式紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/621311

Arduino第十七課(繼電器) 
http://blog.ilc.edu.tw/blog/blog/868/post/93477/622442

Arduino第二十課(電腦裡的馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/614292

roc

宜蘭縣國小資訊小站

您可能也會喜歡…