在Arduino Board上的DIGITAL I/O標示有符號「~」表示該pin腳有PWM輸出,以我使用的Arduino UNO上的DIGITAL I/O有6個pin腳有PWM輸出功能
PWM稱為脈波寬度調節,通過控制方波開與關持續的時間的比例就能模擬一個0 ~ 5V之間變化的電壓。
而在Arduino自帶的函數 analogWrite(pin, value)就是透過PWM來模擬0~5V輸出電壓的函式
參數pin就是DIGITAL I/O上標示有~符號的pin
參數value則是0 ~ 255,主要是控制方波輸出高電位的持續時間與關的持續時間的比例,因此value越低,電壓模擬值越低。
下圖可以更瞭解analogWrite()與value之間的關係
程式使用PWM輸出模擬電壓來控制LED的明亮度
功能是一開始從暗->亮->暗循環下去
#include "Arduino.h"
// the setup function runs once when you press reset or power the board
void setup() {
pinMode(10, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
{
for(unsigned char i = 0; i < 255; i += 5)
{
analogWrite(10,i);
delay(50);
}
}
{
for(unsigned char i = 255; i > 0; i -= 5)
{
analogWrite(10,i);
delay(50);
}
}
}
留言列表