宜蘭縣教育支援平台 會員登入 會員註冊 我的i教書

« 上一篇 | 下一篇 »

接線圖:

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

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

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

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

請學生觀察亮燈顏色。

(老師再複習一遍原理)

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

一、檢查接線

1.先拉[腳位5數位輸出1]、[腳位6數位輸出1]、[腳位7數位輸出1],分別點一下,觀察是否RGB LED 會熄滅。

2.將各腳位分別改成輸出0,和1,觀察各腳位高、低電位時,LED燈的顏色變化。

例如:

LED應該變藍色。

再換

LED應該熄滅。

再換

LED應該變紅色。

再換

LED應該熄滅。

再換

LED應該變綠色。

再換

LED應該熄滅。

二、色光三原色

請同學更換不同的組合(點選不同的積木),讓RGB LED顯示不同的顏色。

例如:

點選腳位5輸出0,再點選腳位6輸出0

請學生觀察顏色變化,想想為什麼?

三原色是哪三種顏色?

三原色可分為色光三原色繪畫顏料三原色

繪畫顏料三原色是「消減型」的原色系統,三原色是洋紅色黃色青色

色光三原色是「疊加型」的原色系統,三原色是紅、綠、藍,三種光相加會成為白色光,依不同比例相加就可以讓你看到各種不同的顏色。

請學生試試看可以混成幾種顏色?

那其他顏色要如何混成?

請看第六課

三、紅、綠燈

LED輪流閃爍紅、綠兩色

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

[腳位(7) 數位輸出1],讓數位腳7輸出為高電位,綠燈暗。

[腳位6) 數位輸出0],讓數位腳6輸出為低電位,紅燈亮。

[等待1秒],讓亮燈維持一秒

[腳位(6) 數位輸出1],讓數位腳6輸出為高電位,紅燈暗。

[腳位(7) 數位輸出0],讓數位腳7輸出為低電位,綠燈亮。

[等待1秒],讓亮燈維持一秒

加上[重複執行],就可以無限循環這個紅、綠燈輪流閃爍。

程式下載:紅綠閃燈.sb2

延伸:

1.請同學將上面程式修改變精簡一點。

2.亮綠燈時,小貓變綠色;亮紅燈時,小貓變紅色

四、十字路口警示紅、黃

LED輪流閃爍紅、黃兩色

因為RGB LED為綠、紅、藍色,黃色綠、紅兩色混合(請看第六課(待補)

所以要顯示黃色必須腳位7、6同時為低電位(0),讓綠、紅兩色同時亮

輪到紅色時,只要綠色暗掉,讓腳位7為高電位(1),綠色就會暗。

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

[腳位(6) 數位輸出0],讓數位腳6輸出為低電位,紅燈亮。

[腳位(7) 數位輸出0],讓數位腳7輸出為低電位,綠燈亮。

綠、紅兩色同時亮就會混成黃色

[等待1秒],讓亮燈維持一秒

[腳位(7) 數位輸出1],讓數位腳7輸出為高電位,綠燈暗。

綠燈暗,就只剩紅燈亮,就會看到紅色

[等待1秒],讓亮燈維持一秒

加上[重複執行],就可以無限循環這個紅、黃燈輪流閃爍。

程式下載紅黃閃燈.sb2

延伸:

請學生修改LED燈亮、滅的快慢。

五、LED輪流閃爍綠、紅、藍三色

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

[腳位(7) 數位輸出0],讓數位腳7輸出為低電位,綠燈亮。

[等待0.5秒],讓亮燈維持0.5秒

[腳位(7) 數位輸出1],讓數位腳7輸出為高電位,綠燈暗。

[腳位(6) 數位輸出0],讓數位腳6輸出為低電位,紅燈亮。

[等待0.5秒],讓亮燈維持0.5秒

[腳位(6) 數位輸出1],讓數位腳6輸出為高電位,紅燈暗。

[腳位(5) 數位輸出0],讓數位腳5輸出為低電位,藍燈亮。

[等待0.5秒],讓亮燈維持0.5秒

[腳位(5) 數位輸出1],讓數位腳5輸出為高電位,藍燈暗。

加上[重複執行],就可以無限循環這個綠、紅、藍燈輪流閃爍。

程式下載3LED閃.sb2

延伸:

1.請學生想想要如何改變閃爍(亮、滅)時間?

2.更改閃爍順序藍、紅、綠或紅、藍、綠或其他

六、模擬十字路口綠、黃、紅燈

LED輪流閃爍綠、黃、紅三色

因為RGB LED為綠、紅、藍色,黃色為綠、紅兩色混合(請看第六課(待補)

所以要顯示黃色必須腳位7、6同時為低電位(0),讓綠、紅兩色同時亮。

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

[腳位(7) 數位輸出0],讓數位腳7輸出為低電位,綠燈亮。

[等待0.5秒],讓亮燈維持0.5秒

[腳位(6) 數位輸出0],讓數位腳6輸出為低電位,紅燈亮。

綠、紅兩色同時亮就會混成黃色

[等待0.5秒],讓亮燈維持0.5秒

[腳位(7) 數位輸出1],讓數位腳7輸出為高電位,綠燈暗。

紅色還是維持亮就會看到紅色

[腳位(6) 數位輸出1],讓數位腳6輸出為高電位,紅燈暗。

加上[重複執行],就可以無限循環這個綠、黃、紅燈輪流閃爍。

將等待的時間調整,就可以模擬十字路口的紅綠燈號了。

程式下載綠黃紅燈.sb2

延伸:

調整各燈號的時間

七、製做一個積木(副程式)

模擬十字路口綠、黃、紅燈。

使用[製做一個積木]來寫程式的好處就是主程式變得比較簡捷,比較有規律,修改、除錯都比較容易。

先點[更多積木],再點[製做一個積木],就會增加一個[積木],填上積木名稱。

製作一個[關燈]積木,[腳位5數位輸出1]、[腳位6數位輸出1]、[腳位7數位輸出1]讓3個腳位輸出高電位,讓LED熄滅。

製作一個[黃燈]積木,要顯示黃色必須腳位7、6同時為低電位(0),讓綠、紅兩色同時亮,就會混成黃色。

主要程式:

原來LED亮著,先用[關燈],讓LED熄滅。

[腳位(7) 數位輸出0],讓數位腳7輸出為低電位,綠燈亮。

[等待2秒],讓亮燈維持2秒

[關燈],讓LED熄滅。

[黃燈],讓LED亮黃色燈。

[等待2秒],讓亮燈維持2秒

[關燈],讓LED熄滅。

[腳位(6) 數位輸出0],讓數位腳6輸出為低電位,紅燈亮。

[等待2秒],讓亮燈維持2秒

[關燈],讓LED熄滅。

加上[重複執行],就可以無限循環這個綠、黃、紅燈輪流閃爍。

將等待的時間調整,就可以模擬十字路口的紅綠燈號了。

雖然這個程式看起來比上一個程式冗長,但是主要程式變得比較容易懂。

程式下載: 綠黃紅燈(製作積木).sb2

八、模擬十字路口綠、黃、紅燈(紅燈時,螢幕要顯示倒數計時)

製作一個[關燈]積木,[腳位5數位輸出1]、[腳位6數位輸出1]、[腳位7數位輸出1]讓3個腳位輸出高電位,讓LED熄滅。

製作一個[黃燈]積木,要顯示黃色必須腳位7、6同時為低電位(0),讓綠、紅兩色同時亮,就會混成黃色。

製作一個[紅燈]積木:

增加一個[紅燈倒數]的變數。

[腳位6數位輸出0],讓LED亮紅色。

[設定變數(紅燈倒數)為(5)],倒數次數設定為5次

[顯示變數(紅燈倒數)],螢幕上顯示(紅燈倒數)這個變數。

[重複5次]

[等待1秒]

[將變數(紅燈倒數)改變(-1)],讓(紅燈倒數)變數減1

[隱藏變數(紅燈倒數)],螢幕上(紅燈倒數)這個變數隱藏不顯示。

[腳位6數位輸出1],讓LED暗。

主要程式:

原來LED亮著,先用[關燈],讓LED熄滅。

[腳位(7) 數位輸出0],讓數位腳7輸出為低電位,綠燈亮。

[等待2秒],讓亮燈維持2秒

[關燈],讓LED熄滅。

[黃燈],讓LED亮黃色燈。

[等待2秒],讓亮燈維持2秒

[關燈],讓LED熄滅。

[紅燈],讓LED亮紅色燈並螢幕上顯示(紅燈倒數)這個變數,5秒後隱藏不顯示並關掉紅燈。

加上[重複執行],就可以無限循環這個綠、黃、紅燈輪流閃爍。

主要程式變得比較容易懂。

程式下載綠黃紅燈(製作積木)紅燈顯示.sb2

延伸:

仔細觀察會發現程式一執行螢幕就會出現[紅燈倒數],因為主程式一開始並沒有將[紅燈倒數]隱藏起來,請修正。

九、綠、黃、紅燈輪流亮(紅、綠燈時,螢幕都要顯示倒數計時)

程式大致上同上面的練習。

增加製作一個[綠燈]積木:增加一個[綠燈倒數]的變數,程式類似[紅燈]積木,將變數名稱改成[綠燈倒數],將腳位改成綠色的腳位7。 

主要程式變得更簡短更容易懂了。

程式下載: 綠黃紅燈(製作積木)紅綠燈顯示.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




 
 
 
用LINE傳送