mblock第五課(PWM模擬類比輸出)
Arduino UNO控制板的數位腳位上有[~]符號的D3,D5,D6,D9,D10,D11也可以當作類比輸出,利用PWM模擬不同的電壓輸出。
一、呼吸燈(漸亮、漸暗、漸亮、漸暗、不斷循環)
1.一顆LED呼吸燈
紅色LED長腳(正極)接D11
做一個變數[呼吸],設置數位腳位D11的PWM輸出值為[呼吸],改變[呼吸]的數值,輸出的電壓就會改變,LED的亮度也就跟著改變。
程式下載:1呼吸燈.sb2
2.三顆LED呼吸燈輪流呼吸(漸亮、漸暗、換下一顆漸亮、漸暗、不斷循環)
紅色LED,正極接D11
黃色LED,正極接D10
綠色LED,正極接D9
控制D9、D10、D11的PWM輸出,來控制三種顏色LED的亮度。
2.1第一種方式:
程式開始先讓三顆燈都先熄滅。
做一個變數[呼吸],設置數位腳位D9的PWM輸出值為[呼吸],改變[呼吸]的數值,輸出的電壓就會改變,綠色LED的亮度也就跟著改變。
接著換設置數位腳位D10的PWM輸出值為[呼吸],然後是D11,不停地重複。
程式下載:3呼吸燈A.sb2
2.2第二種方式:
使用積木指令,讓主要的程式看起來簡潔
程式下載:3呼吸燈B.sb2
PS:寫程式除了要能執行需要的功能外,如果能讓程式簡短一些,執行更有效率,更是程式設計的精神所在。
上面的範例並不是最短的程式,還有更簡短的程式寫法您想到了嗎?
3.三顆LED呼吸燈一起呼吸(三顆LED一起漸亮、漸暗、漸亮、漸暗、不斷循環)
請參考前面範例設計
4.隨機呼吸(三顆LED隨機改變亮度)
設置數位腳位D9、D10、D11的輸出為隨機,等待時間也是隨機,不停地重複,三顆LED的亮度也就跟著隨機改變。
程式下載:隨機PWM.sb2
二、控制馬達轉速
可以控制馬達轉速,調整風扇轉速……等應用。後面再介紹。
———————————-
相關連結:
Arduino初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605771
Arduino課程準備
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599681
Arduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599732
Arduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599733
Arduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600369
Arduino第四課(LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600422
Arduino第五課(pwm)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600854
Arduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600855
Arduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602388
Arduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602288
Arduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602290
Arduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602291
Arduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605139
Arduino第十二課(離線執行)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605798
———————————–
Arduino進階班課程目錄
Arduino第十三課(超音波感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620602
Arduino第十四課(搖桿)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620718
Arduino第十五課(人體紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/620975
Arduino第十六課(主動式紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/621311
Arduino第十七課(繼電器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/622442
Arduino第二十課(電腦裡的馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/614292