本例向你展示如何使用analogwrite()函式來讓led亮度漸變。analogwrite 通過pwm技術(脈寬調變技術)工作,採用pwm技術能夠快速的開關乙個數字引腳,通電的時間和斷電的時間按照一定的比例分配,這樣一來就產生了亮度漸變效果。將led陽極(較長腳)通過220ω電阻連線到板上的9號引腳。【譯者注:想不明白應該去了解下生物學視覺暫留的知識。】
連線led陰極(較短腳)到gnd。
setup()函式只需宣告9號引腳為輸出引腳,其他什麼都不做。
呼叫analogwrite()函式(在loop函式內)需要兩個引數:第乙個為要操作的引腳,第二個時要寫出的pwm脈衝寬度值。
為了讓led的熄滅和點亮有漸變效果,你需要逐漸將pwm值從0(全部時間不通電)逐漸增加到255(全部時間通電)。然後,再從255調到0,以完成一輪亮度漸變。在下方的工程中,pwm值用乙個名為brightness的變數儲存。loop函式每執行一次,就將brightness變數的值與fadeamount變數的值相加,並將和再賦給brightness變數。
當brightness變數的值是0或255時,如果發現fadeamount值為-5,它就應被設為5;若為5則設為-5。如此一來,下次進入迴圈時亮度就會跟著由弱轉亮或由亮轉弱。analogwrite()函式能極其快速的改變pwm值,因此在loop函式最後的delay控制了漸變速度。試試看改變delay的時間,看看它如何影響漸變效果。
/*
led亮度漸隱
本例向你展示如何用analogwrite()函式讓9號引腳連線的led亮度漸弱。
analogwrite()函式使用pwm技術,因此如果你想要使用其他引腳接led,一定保證選擇的引腳也支援pwm輸出。大多數arduino板支援pwm的引腳以「~」符號標明.比如: ~3, ~5, ~6, ~9, ~10和~11。
這個例子是公開的。
*/int led = 9; // led連線的pwm引腳
int brightness = 0; // led亮度
int fadeamount = 5; // 亮度每次的變化值
// setup函式在通電或復位後僅執行一次。
void setup()
// loop函式永遠迴圈執行:
void loop()
// 等待30毫秒以讓人眼看出漸變效果
delay(30);
}
LED亮度漸變
led亮度漸變 fade 本示例展示了使用analogwrite 來實現led亮度的漸變。analogwrite採用脈衝寬度調製 pwm 以開關之間的不同比例快速開啟和關閉乙個數字引腳,來打造出漸變效果。需要的硬體 核心 如下 int led 9 led所連線的pwm引腳 int brightnes...
LED亮度調節原理
近年來light emitting diode led 被廣泛用於照明行業,相較於其他光源,led具有諸多優勢 光效高 壽命長 色溫變化小 動態響應快 體積小等。那麼如何才能設計出合理的燈具呢,我來給大家羅列一下led的主要特性。當電流被注入到半導體的pn結時,原子中低能級的電子吸收能量從基態被激發...
控制led 用pwm的方法控制LED亮度
在本課程中,您將學習如何通過電位計來更改led的亮度。電位器實際上是乙個可調的電阻,阻值隨意手柄的轉動而變化,模擬電路中,我們可以將電位器串聯在電路中,改變led亮度。本次實驗,電位器只提供乙個訊號,實際燈的亮度由arduino控制。二 材料準備 1 arduino uno開發板 1 麵包板 若干杜...