新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