在前幾篇入門教程中,我們學會了用digitalWrite(HIGH/LOW) 函數控制LED的亮和滅。那麼你可能就會問了,除了這兩種二元狀態,就沒有中間狀態了麼?如果我想控制LED的亮度呢? 如何從亮慢慢地熄滅呢? 在本篇教程中,我們就來學習一個非常重要的概念-- PWM。使用它就可以輕易地實現LED漸亮漸滅的呼吸效果。
關於PWMPWM, 全稱叫Pulse Width Modulation,搜了一下都叫「脈寬調製 /脈衝寬度調製」。簡單來說,Arduino只能產生5V和0V電壓,如果想要2.5V或者其他值的電壓就要靠PWM,PWM通過單片機的數字輸出的不同脈衝寬度,來得到「模擬輸出」需要的值。
Arduino UNO 1塊
當然你也可以使用Arduino其它版本,比如Arduino Leonardo, Arduino Duemilanove。
Arduino USB線 1根
一端是A型,一端是B型的USB連接線,用來連接Arduino和電腦
麵包板 1塊
麵包線/跳線 若干根
兩頭都是針頭的公對公麵包線若干
LED 1顆
這裡我們選用最常用的1顆紅色LED,用綠色的也可以。
220Ω電阻 1顆
裝有Arduino IDE的Mac/PC/Linux 1臺
若沒有安裝,請參考《Arduino入門3: 安裝和熟悉Arduino IDE》安裝。
連接電路LED長腳(正)加220歐電阻再連到Arduino Pin9引腳,LED短腳(負)直接GND。
代碼
導入文件>示例>Basics>Fade
int led = 9; int brightness = 0; int fadeAmount = 5; void setup() { pinMode(led, OUTPUT);}void loop() { analogWrite(led, brightness); brightness = brightness + fadeAmount; if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } delay(30);}
analogWrite()用於設定特定pin的PWM值,這個函數需要兩個輸入參數:analogWrite(pin, value),pin即你要操作的針腳, value的範圍是0~255。
代碼上傳完成後,我們可以看到LED會有個逐漸由亮到滅再到亮的一個緩慢過程,而不是直接的亮和滅,如同早起蘋果電腦的呼吸燈一般,感覺在呼吸。
Arduino電子書和視頻教程獲取方式
也想要一份我們套件附送的Arduino電子書和各種視頻教程麼?
掃描下方二維碼加關注後,回復「福利」
戳閱讀原文,購買Arduino入門學習套件