WFduino第八課(按鍵)

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

小學生建議用2腳的 ,比較不會接錯方向。(最近發現針腳容易折斷)

一、直接控制LED亮或熄滅

 

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

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

鬆開開關,LED熄滅

注意:

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

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

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

 

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

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

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

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

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

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

延伸:

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

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

3.加上蜂鳴器,讓按下時蜂鳴器會響。

、運用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燈滅。

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

延伸:

兩顆LED,按下按鍵,其中一個LED亮,第二次再按下時LED燈滅,換另一個LED亮。兩顆LED輪流亮。

程式下載:兩段式開關(紅綠輪流).sb2

五、按鍵啟動音樂

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

1.彈奏鼓聲

重複執行:判斷按鍵是不是有按下按鍵,讀取數位腳位(8)的值。

如果按鍵按下時(數位腳位8的值=1),就輸出一個高電位給數位腳D11,讓紅色LED亮,並[彈奏鼓聲]

可以選擇發出不同的[鼓聲]及節拍。

程式下載:按鍵(鼓).sb2

2.打擊樂

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

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

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

這次選敲鑼。

重複執行:判斷按鍵是不是有按下按鍵。

如果按鍵按下時(數位腳位8的值=1),就輸出一個高電位給數位腳D11,讓紅色LED亮,並發出鑼聲的音效。

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

如果連續多次按下按鍵,會發現鑼聲被中斷變成不像鑼聲。

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

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

3.播放音樂

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

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

4.設定樂器

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

使用[設定樂器為(…)],可以選擇不同的樂器

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

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

六、改變螢幕上主角的造形

主程式跟上面一樣,再多加[下一個造型]及[播放音效]指令,當按下按鍵,播放音效並改變主角造型。

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

程式下載:改變造形.sb2

七、改變螢幕上主角的動作

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

增加錄音效果

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

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

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

 

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

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

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

程式下載:改變動作.sb2

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

八、搶答

 

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

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

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

程式設計請參考第二課

九、按鍵控制LED+蜂鳴器

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

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

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

程式下載:  

十、按鍵電子琴

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

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

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

程式設計請參考前面。

先判斷D2是否有訊號,如果按了第一個Do按鍵,D2就有訊號,執行下面的指令。

讓黃色LED亮(D7高電位),接著讓蜂鳴器播出一個二分之一拍的Do,然後LED熄滅。

其他音階判斷也是一樣。

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

十一、創作

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

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

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

英語單字學習機

十二、計數器

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

做一個計數器變數。

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

重複檢查是否按下按鍵,如果按下按鍵時,數位腳D8會輸入一個高電位,就亮燈並將計數器的值加1

程式下載:計數器.sb2

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

因為按下去以後,數位腳D8會一直輸入一個高電位直到放開,所以計數器的值就一直加上去了。

要如何修正呢?

改用 [等待…] 指令來控制

程式下載:計數器1.sb2

 

延伸:

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

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

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

十三、打地鼠

組合不同顏色LED和按鍵,看到那一個顏色的燈亮,就按那個燈旁的按鍵,按對加分,按錯扣分。再加上計分和時間限制(倒數計時)

十四、反應測試

測試你的神經反應:

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

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

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

按綠旗後的說明

開始先出現主題及說明頁,等待按鍵開始。

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

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

程式下載:反應測試.sb2

延伸:

加裝一組蜂鳴器。

準備好時,按下按鍵,隨機時間後LED亮,並且蜂鳴器發出聲音,看到亮燈或聽到聲音,要立刻按下按鍵。螢幕上顯示你看到亮燈或聽到聲音到按下按鍵的反應時間。

十五、電子骰子

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

接RGB三色LED和一組按鍵。

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

程式開始先設定數位腳8~11的功能(輸入或輸出)

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

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

鬆開按鍵時,D8沒有訊號輸入,燈就停止隨機亂閃顏色

程式下載:電子骰子.sb2

延伸:

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

2.改接7顆LED,排成骰子的點數形狀,模擬擲骰子的情形亮不同的燈。

十六、顏色猜猜機

設計一個遊戲機器,讓玩家猜顏色。

在螢幕上先出現三個顏色讓玩家選擇(猜),選好後玩家按下麵包板上的按鍵,三個顏色的LED燈開始亂數閃爍,鬆開按鍵時,某一個顏色的燈恆亮,如果猜中顏色,就說[猜對了],如果猜錯,就說[猜錯了]。

請參考  http://blog.ilc.edu.tw/blog/blog/868/post/97121/630444

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

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

十七、平交道緊急按鈕

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

六年級藍培誠同學作品。

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

相關連結:

初級班課程目錄

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

宜蘭縣國小資訊小站