新DiFi第5課控制RGB LED(下)

接線圖:

使用Jump直接將D5和LEDB、D6和LEDR、D7和LEDG兩兩接上。

因為這是共陰極RGB LED,共用的負極已經內接了。

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

一、隨機閃燈

LED隨機亮綠色、紅色或藍色

A、使用變數

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

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

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

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

然後重複執行改變。

程式下載: 隨機閃燈.sb2

延伸:

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

B、使用廣播

主程式:

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

副程式:

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

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

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

注意:

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

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

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

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

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

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

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

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

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

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

程式下載3LED.sb2

延伸

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

三、搶答

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

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

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

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

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

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

程式下載搶答.sb2

延伸:

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

2.做一個4人搶答系統

3.做一個多人(5~6人)搶答系統

四、搶答(說出結果)

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

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

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

主要程式同上面。

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

程式下載搶答(說).sb2

延伸:

chromebook無法使用[說…]積木說出中文,可以加上錄音音效(錄製3種,綠隊先答,紅隊先答,藍隊先答),使用[播放音效]積木,搶答後同時播放。

五、自動搶答(說出結果)

按綠旗開始後,小貓先隱藏,等待1~3秒後,小貓顯示,並發出喵聲,綠、紅、藍三隊才搶答,先按的亮燈,後按的燈不亮,並說出哪一隊先答。

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

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

主要程式同上面。

搶答前加上隱藏幾秒後顯示並發出喵聲。

程式下載搶答(說)自動.sb2

六、聲音控制LED顏色

LED顏色隨音量大小而改變

程式下載:音量(亮燈).sb2

——————————

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

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

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

相關連結:

新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

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

roc

宜蘭縣國小資訊小站

您可能也會喜歡…