DiFi第五課控制RGB LED(下)

接線圖:

拿一條麵包線,一端接數位腳D7,一端接板子上寫[LEDG]的插孔(上圖標d)。

再拿一條麵包線,一端接數位腳D6,一端接板子上寫[LEDR]的插孔(上圖標e)。

再拿一條麵包線,一端接數位腳D5,一端接板子上寫[LEDB]的插孔(上圖標f)。

因為這是共陽極RGB LED,共用的正極已經內接了,數位腳位D5、D6、D7預設低電位(GND),所以接上就形成通路,LED亮燈

請學生觀察亮燈顏色。

(老師再複習一遍原理)

當輸出為高電位(3.3V)時LED熄滅低電位(0V)時LED

一、隨機閃燈

LED隨機亮色、色或

A、使用變數

增加一個[亮燈]的變數。 

[設定變數(亮燈)為(在5到7間隨機選一個數)],將變數值設定為5到7之間的隨機變數。

設定[亮燈]變數的腳位輸出為0(低電位),將LED燈顏色變成該腳位的顏色。 

等待0.5秒後,將[亮燈]變數的腳位輸出為1(高電位),將LED燈熄滅。

然後重複執行改變。

程式下載: 隨機閃燈.sb2

延伸:

改變等待時間,讓隨機閃燈的時間改變。

B、使用廣播

主程式:

重複執行,[廣播(在5到7間隨機選一個數)],5到7之間的隨機選擇一個數做廣播,就是要選擇一個腳位亮燈(顏色),[等待0.5秒],再選下一個顏色。

副程式:

接收到廣播後,就讓腳位輸出0(低電位),讓燈亮該顏色,[等待0.5秒],再選暗掉。

程式下載隨機閃燈(廣播).sb2

二、使用鍵盤按鍵來控制LED

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。

按鍵盤上的[空白鍵]讓LED燈亮色,鬆開[空白鍵]讓LED燈熄滅。

按鍵盤上的[向左鍵]讓LED燈亮色,鬆開[向左鍵]讓LED燈熄滅。

按鍵盤上的[向右鍵]讓LED燈亮色,鬆開[向右鍵]讓LED燈熄滅。

如果按下[空白鍵],就讓數位腳位7輸出0(低電位),讓LED亮。

否則就數位腳位7輸出1(高電位),讓LED熄滅。

如果按下[向左鍵],就讓數位腳位6輸出0(低電位),讓LED亮。

否則就數位腳位6輸出1(高電位),讓LED熄滅。

如果按下[向右鍵],就讓數位腳位5輸出0(低電位),讓LED亮。

否則就數位腳位5輸出1(高電位),讓LED熄滅。

程式下載3LED.sb2

延伸:

如果同時按下2個鍵或3個鍵LED顏色變成怎樣?

三、搶答

綠、紅、藍三隊搶答,先按的亮燈,後按的燈不亮

綠隊按[空白鍵]讓LED燈亮色,紅隊按[向左鍵]讓LED燈亮色,藍隊按[向右鍵]讓LED燈亮色。

原來LED亮著,先用[腳位7數位輸出1]、[腳位6數位輸出1]、[腳位5數位輸出1]讓3個腳位輸出高電位,讓LED熄滅,才能開始進行。

然後偵測[空白鍵]、[向左鍵]、[向右鍵]是否被按下,來決定哪一隊先搶到答題。

如果按下[空白鍵],就讓數位腳位7輸出0(低電位),讓LED亮綠色。
並說[綠隊先答](螢幕顯示),然後停止[這個程式],以免另一隊也按了,也亮燈。

如果按下[向左鍵],就讓數位腳位6輸出0(低電位),讓LED亮紅色。 
並說[紅隊先答](螢幕顯示),然後停止[這個程式],以免另一隊也按了,也亮燈。

如果按下[向右鍵],就讓數位腳位5輸出0(低電位),讓LED亮藍色。 
並說[藍隊先答](螢幕顯示),然後停止[這個程式],以免另一隊也按了,也亮燈。

程式下載搶答.sb2

 

延伸:

加上自動倒數,時間到後發出[喵]聲,聽到[喵]聲三隊開始搶答。

四、搶答(說出結果)

綠、紅、藍三隊搶答,先按的亮燈,後按的燈不亮,並說出哪一隊先答。

綠隊按[空白鍵]讓LED燈亮綠色並說出綠隊先答,紅隊按[向左鍵]讓LED燈亮紅色並說出紅隊先答,藍隊按[向右鍵]讓LED燈亮藍色並說出藍隊先答。

註:win7和chromebook只會說英文,不會說中文。

主要程式同上面。

使用[說(……)]的擴充積木將搶答結果哪一隊先答轉換為聲音,讓程式真的說出來。

程式下載搶答(說).sb2

——————————

1.實際上課時,可能無法在一節課內完成,老師視學生情形彈性調整上課進度,可以先請學生另存新檔,下次上課時再開啟舊檔來繼續修改。

2.程式並無標準答案,所附程式僅供參考。

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

相關連結:

DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/100870/660551

 

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

roc

宜蘭縣國小資訊小站

您可能也會喜歡…