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

« 上一篇 | 下一篇 »

Arduino UNO控制板的數位腳位上有[~]符號的D3,D5,D6,D9,D10,D11也可以當作類比輸出,利用PWM模擬不同的電壓輸出。(註)

 

註:這裡使用的類比輸出值範圍為0~255,0最小(0V),255最大(5V)

接線圖:

使用Jump直接將D9和LEDB、D10和LEDG、D11和LEDR兩兩接上。

當類比輸出為255(5V)時LED亮,類比輸出為0(0V)時LED熄滅。

一、呼吸燈(一個顏色漸亮、漸暗、漸亮、漸暗、不斷循環)

做一個變數[呼吸],[腳位(11)類比輸出(呼吸)],改變[呼吸]的數值,輸出的電壓就會改變,LED的亮度也就跟著改變。

先將呼吸變數慢慢增加,LED愈來愈亮。(重複255次)

再將呼吸變數慢慢減少,LED愈來愈暗。(重複255次)

[重複無限次]上面的動作。

程式下載1呼吸.sb2

延伸:

1.如何改變呼吸(亮、暗)速度?

2.仔細觀察會發現燈漸暗時,到最暗了燈並沒有全暗(還有一點亮光),為什麼?

3.請同學思考並試試看[變數改變]和[腳位..類比輸出..]這兩個積木指令的順序如果相反,仔細觀察結果有何不同?

二、檢查程式

在[腳位(11)類比輸出(呼吸)],下面加一個[說(呼吸)]的積木,顯示輸出的值。

為了讓變化更容易觀察,在[重複255次]下面中增加[等待2秒]的指令,觀察變數的變化。

發現當最亮時實際輸出(說的值)是254,最暗時實際輸出(說的值)是1

程式下載呼吸(檢查).sb2

三、呼吸燈(一個顏色漸亮、漸暗、漸亮、漸暗、不斷循環)(修正)

[將變數改變(...)]和[腳位..類比輸出..]這兩個積木指令的順序改變。

發現當最亮時實際輸出(說的值)是255,最暗時實際輸出(說的值)是0

引導學生想想如何檢查程式的BUG

另一種檢查方式,可以先將綠旗下的積木都先移開,再一個積木一個積木接回去,觀察增加積木後的變化。

程式下載修正2.sb2

四、呼吸燈(三色輪流呼吸,漸亮、漸暗、換下一色漸亮、漸暗、不斷循環)

控制D9、D10、D11的類比輸出,來控制LED三種顏色的亮度。

做一個變數[呼吸],[腳位(9)類比輸出(呼吸)],改變[呼吸]的數值,輸出的電壓就會改變,LED的亮度也就跟著改變。

先將呼吸變數慢慢增加,LED愈來愈亮。(重複255次)

再將呼吸變數慢慢減少,LED愈來愈暗。(重複255次)

接著換設定腳位D10的類比輸出值為[呼吸],然後是D11。

[重複無限次]上面的動作。

程式下載3呼吸.sb2

延伸:

1.將檢查程式用的[說(呼吸)]、[等待 2秒]積木移除,讓程式變短。

2.寫程式除了要能執行需要的功能外,如果能讓程式簡短一些,執行更有效率,更是程式設計的精神所在。

上面的範例並不是最短的程式,還有更簡短的程式寫法您想到了嗎?

五、呼吸燈(三色輪流呼吸,簡短程式)

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

讓燈號從9到11重複三次,讓顏色從綠、紅、藍輪流呼吸。

程式下載3呼吸短.sb2

延伸:

1.請同學思考並試試看,腳位積木和變數積木順序改變對結果的影響?

2.請同學思考並試試看,如何讓顏色變換速度減慢?

六、其他應用

可以控制馬達轉速,調整風扇轉速......等應用。後面再介紹。

----------------------------------

註:

Pulse Width Modulation (PWM),脈衝寬度調變

簡單的說,他是一種利用數位訊號模擬類比訊號的方式。

通常我們可以用來調整燈光的亮度、馬達的轉速、RGB LED 的配色、螢幕亮度控制、喇叭的大小聲/聲音頻率等…。

PWM 的原理,就是藉由數位訊號高頻率的切換,調整開關的比例,我們可以模擬出我們需要的類比訊號。

資料來源:http://thats-worth.blogspot.tw/2014/04/arduino-pwm-arduino-pulse-width.html

-------------------------------

相關連結:

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




 
 
 
用LINE傳送