Arduino第四課(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燈熄滅。

程式設計請參考上一節修改

二、搶答

甲、乙、丙三隊搶答,先按的亮燈,後按的燈不亮

紅隊按[空白鍵]讓紅色LED燈亮,黃隊按[上移鍵]讓黃色LED燈亮,綠隊按[a]讓綠色LED燈亮

程式設計請參考上一節修改

三、十字路口紅綠燈

1.綠、黃、紅LED輪流亮

[綠燈]積木表示要亮綠燈一秒,然後熄滅;
[黃燈]積木表示要亮黃燈一秒,然後熄滅;
[紅燈]積木表示要亮紅燈一秒,然後熄滅。

程式一開始先讓LED燈熄滅。

然後[綠燈]、[黃燈]、[紅燈]輪流亮 

程式下載:紅黃綠閃燈.sb2

2. 綠、黃、紅LED輪流亮,黃燈要閃爍(模擬十字路口)

將上一個練習的[綠燈]、[紅燈]積木修改為:亮3秒,然後熄滅;

將上一個練習的[黃燈]積木修改為:亮黃燈0.1秒,然後熄滅0.1秒;

再將[黃燈]積木重複5次

程式下載:紅黃綠閃燈(黃燈閃).sb2

3. 紅燈時,螢幕要顯示倒數計時(模擬十字路口)

修改上一個程式的[紅燈]積木

 

增加一個[紅燈倒數]的變數。
一開始先隱藏變數,等輪到紅燈再顯示。
紅燈時,先設紅燈為[高電位],將紅燈點亮,設定變數值紅燈秒數(5秒),在螢幕上顯示變數。
等待一秒後,將變數值減1
重複5次後,隱藏變數,設置紅燈為[低電位],紅燈熄滅。

程式下載:紅黃綠閃燈(顯示紅燈倒數).sb2

4. 紅、綠燈時,螢幕都要顯示倒數計時

程式設計請參考前面修改

四、隨機閃燈

綠、黃、紅LED隨機點亮又熄滅

隨機閃燈.jpg

[在…到…間隨機選一個數]:設定隨機變數為9到11

[廣播]變數:使用廣播隨機變數來決定該亮哪一個燈。

[當我接收到…]:當我接收到廣播的變數後,就執行亮燈一秒再熄滅。

程式下載隨機閃燈.sb2

五、學生創作:

4-1.提供多組材料讓學生自由創作

4-2.學生尋求其他組同學合作創作更多元的作品

例如:

十字路口有4組紅綠燈一起動作。

更多隊伍(5隊、6隊)的搶答系統

用LED編排圖形、文字

霹靂燈:

模擬廣告看板

打地鼠(看到紅色燈亮按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第四課(LED紅綠燈) 由 roc 發表。