S3i第4課控制RGB LED(上)

一顆RGB三色LED裡面就有RGB(紅、綠、藍)三種顏色的LED,我們用的是共陰極,有四支腳,其中最長的腳要接地(GND),其他三支腳分別控制 R、G、B 三個顏色。(註)

RGB

為了避免電流太大,負極接地前先接一顆電阻;

其他三支腳分別接D9(藍)、D10(綠)、D11(紅)

接線圖:

iL學習板內建共陰極RGB LED ,已經接好電阻,共用的負極也已經內接了。

只要使用Jump直接將D9和LEDB、D10和LEDG、D11和LEDR兩兩接上就會像上圖一樣。

當數位腳位輸出為高電位時LED亮,低電位時LED熄滅。

一、檢查RGB LED腳位

1.先拉[腳位9數位輸出1]、[腳位10數位輸出1]、[腳位11數位輸出1],分別點一下,觀察RGB LED 是否會亮?亮燈顏色?

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

例如:

LED應該變藍色。

再換

LED應該熄滅。

再換

LED應該變綠色。

再換

LED應該熄滅。

再換

LED應該變紅色。

再換

LED應該熄滅。

二、色光三原色

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

例如:

點選腳位9輸出1,再點選腳位10輸出1

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

(下面這段可先跳過)

三原色是哪三種顏色?

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

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

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

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

那其他顏色要如何混成?

請看第六課PWM模擬類比輸出 

三、綠、紅燈

LED輪流閃爍綠、紅兩色

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

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

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

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

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

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

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

程式下載:綠紅閃燈.sb3

延伸:

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

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

四、十字路口警示紅、黃燈(上)

輪流閃爍紅、黃兩色燈,模擬十字路口警示紅、黃燈。

使用RGB LED數位腳位D11顯示紅燈,數位腳位D13的黃色LED顯示黃燈。

1.[腳位(11) 數位輸出1],讓數位腳11輸出為高電位,RGB LED亮紅燈。

2.[腳位(13) 數位輸出0],讓數位腳13輸出為低電位,黃色LED熄滅。

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

4.[腳位(11) 數位輸出0],讓數位腳11輸出為低電位,RGB LED熄滅。

5.[腳位(13) 數位輸出1],讓數位腳13輸出為高電位,黃色LED亮黃燈。

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

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

程式下載: 紅黃閃燈.sb3

延伸:

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

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

五、十字路口警示紅、黃燈(下)

使用單一顆RGB LED輪流閃爍紅、黃兩色

因為RGB LED可以顯示綠、紅、藍色,黃色為綠、紅兩色混合(請看第六課PWM模擬類比輸出)

所以要顯示黃色必須腳位10、11同時為高電位(1),讓綠、紅兩色同時亮。

輪到紅色時,只要綠色暗掉,讓腳位10為低電位(0),綠色熄滅,就剩紅色。

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

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

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

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

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

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

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

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

程式下載:紅黃閃燈2.sb3

延伸:

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

六、RGB LED輪流閃爍藍、綠、紅三色

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

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

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

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

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

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

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

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

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

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

程式下載:3LED閃.sb3

延伸:

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

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

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

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

因為RGB LED可以顯示綠、紅、藍色,黃色為綠、紅兩色混合(請看第六課PWM模擬類比輸出)

所以要顯示黃色必須腳位10、11同時為高電位(1),讓綠、紅兩色同時亮。

輪到紅色時,只要綠色暗掉,讓腳位10為低電位(0),綠色熄滅,就剩紅色。

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

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

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

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

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

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

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

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

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

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

程式下載:綠黃紅燈.sb3

延伸:

1.調整各燈號的時間

2.LED燈號改變時,在螢幕上同時顯示綠、黃、紅燈號誌改變。

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

 

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

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

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

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

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

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

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

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

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

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

[重複5次]

[等待1秒]

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

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

[腳位11數位輸出0],讓LED暗。

 

製作一個[關燈]積木,[腳位9數位輸出0]、[腳位10數位輸出0]、[腳位11數位輸出0]讓3個腳位輸出低電位,讓LED熄滅。

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

製作一個[紅燈]積木:

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

[腳位11數位輸出1],讓LED亮紅色。

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

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

[重複5次]

[等待1秒]

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

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

[腳位11數位輸出0],讓LED暗。

程式下載:綠黃紅燈(紅燈顯示).sb3

延伸:

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

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

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

設計一個紅綠燈圖形,模擬紅綠燈的運作,配合燈號做圖形顏色變換。

下面示例修改自張皓翔同學作品

添加一個[綠燈]積木:

螢幕上紅綠燈造型換成綠色亮。

[腳位10數位輸出1],讓LED亮綠色。

[等待1秒]

添加一個[黃燈]積木:

螢幕上紅綠燈造型換成黃色亮。

要顯示黃色必須腳位10、11同時為高電位(1),讓綠、紅兩色同時亮,就會混成黃色。

[腳位11數位輸出1],讓LED亮紅燈,和原來的綠燈混成黃色。

添加一個[紅燈]積木:

螢幕上紅綠燈造型換成紅色亮。

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

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

[廣播(紅燈倒數)]:螢幕上紅燈倒數造型開始切換成到數。

[等待10秒]

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

主要程式:

[重複無限次],綠、黃、紅燈函式,就可以無限循環這個綠、黃、紅燈輪流閃爍。

主要程式變得更簡潔。

紅燈倒數圖形切換

程式下載: 綠黃紅燈(函式積木)紅燈顯示A.sb2

延伸:

1.[廣播(紅燈倒數)]、[等待10秒]兩個程式可以合併成一個嗎?

    使用[廣播(紅燈倒數)並等待]

2.使用[同時輸出]積木:

使用[同時輸出:腳位(…)輸出(…)腳位(…)輸出(…)腳位(…)輸出(…)腳位(…)輸出(…)]可以同時控制4個腳位的輸出值,方便調色,讓燈號顯示更清楚。

——————————

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

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

—————————–

相關連結:

S32E(Scratch3 to Esp8266)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113127/750388

S3i(Scratch3 to arduino iL學習板)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113128/750428

S3A(Scratch3 to Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/113129/750447

arduino iL學習板課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/111175/727272

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

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

roc

宜蘭縣國小資訊小站

您可能也會喜歡…