mblock第四課(LED紅綠燈)
增加為紅 、黃、綠三顆LED
紅色LED,正極接Arduino板數位腳位11
黃色LED,正極接Arduino板數位腳位10
綠色LED,正極接Arduino板數位腳位9
控制數位腳位9、10、11的輸出為高電位(5V)或低電位(0V)。來控制三種顏色LED的亮或熄滅。
一、使用鍵盤按鍵來控制LED
按鍵盤上的[a]鍵讓綠色LED燈亮,鬆開[a]鍵讓綠色LED燈熄滅。
按鍵盤上的[空白鍵]讓紅色LED燈亮,鬆開[空白鍵]讓紅色LED燈熄滅。
按鍵盤上的[上移鍵]讓黃色LED燈亮,鬆開[上移鍵]讓黃色LED燈熄滅。
程式設計請參考上一節修改
二、搶答
1.甲、乙、丙三隊搶答,先按的亮燈,後按的燈不亮。
紅隊按[空白鍵]讓紅色LED燈亮,黃隊按[上移鍵]讓黃色LED燈亮,綠隊按[a]鍵讓綠色LED燈亮。
程式設計請參考上一節修改
2.加上倒數計時,時間到,再搶答。(學生上課時做的)
三、十字路口紅綠燈
1.綠、黃、紅LED輪流亮
[綠燈]積木表示要亮綠燈一秒,然後熄滅;
[黃燈]積木表示要亮黃燈一秒,然後熄滅;
[紅燈]積木表示要亮紅燈一秒,然後熄滅。
程式一開始先讓LED燈熄滅。
然後[綠燈]、[黃燈]、[紅燈]輪流亮。
程式下載:綠黃紅輪流亮.sb2
2. 綠、黃、紅LED輪流亮,黃燈要閃爍
將上一個練習的[綠燈]、[紅燈]積木修改為:亮3秒,然後熄滅;
將上一個練習的[黃燈]積木修改為:亮黃燈0.1秒,然後熄滅0.1秒;
再將[黃燈]積木重複5次
程式下載:綠黃紅輪流亮(黃燈閃).sb2
3. 紅燈時,螢幕要顯示倒數計時(模擬十字路口)
修改上一個程式的[紅燈]積木:
增加一個[紅燈倒數]的變數。
一開始先隱藏變數,等輪到紅燈再顯示。
紅燈時,先設紅燈為[高電位],將紅燈點亮,設定變數值紅燈秒數(5秒),在螢幕上顯示變數。
等待一秒後,將變數值減1
重複5次後,隱藏變數,設置紅燈為[低電位],紅燈熄滅。
PS:實際上路口紅綠燈的黃燈並不會閃喔!
程式下載:綠黃紅輪流亮(倒數).sb2
4. 紅、綠燈時,螢幕都要顯示倒數計時
程式設計請參考前面修改
四、隨機閃燈
綠、黃、紅LED隨機點亮又熄滅
[在…到…間隨機選一個數]:設定隨機變數為9到11
[廣播]變數:使用廣播隨機變數來決定該亮哪一個燈。
[當我接收到…]:當我接收到廣播的變數後,就執行亮燈一秒再熄滅。
程式下載:隨機閃燈.sb2
五、學生創作:
4-1.提供多組材料讓學生自由創作
4-2.學生尋求其他組同學合作創作更多元的作品
例如:
十字路口有4組紅綠燈一起動作。
更多隊伍(5隊、6隊)的搶答系統
用LED編排圖形、文字
霹靂燈:想想看如何用簡短的程式來控制更多顆LED
程式下載:霹靂燈.sb2
模擬廣告看板
打地鼠(看到紅色燈亮按R鍵、黃色燈亮按Y鍵、綠色燈亮按G鍵,按對計分)(請參考林信良老師的書)
時鐘
———————
使用[新增積木指令]來寫程式的好處就是程式比較有規律,修改、除錯都比較容易。
例如:上面三-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進階班課程目錄
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