analogWrite()
描述
對 pin 腳寫入一個類比訊號數值 (pin 腳將輸出 PWM 波型),可以用在改變 LED 的亮度以及控制馬達的轉速,在呼叫 analogWrite()
之後,pin 腳將會產生一個指定 duty 的 PWM 方波,直到下一次再呼叫 analogWrite()
(或者在同一個 pin 腳上呼叫 digitalRead()/digitalWrite());在 86Duino 上 PWM 訊號的頻率是 1000Hz。
在 86Duino ZERO 上,這個函式會作用在 pin 3、5、6、9、10、11、13;在 86Duino EduCake 上,這個函式會作用在 pin 3、5、6、9、10、11、13、21;在 86Duino ONE 上,這個函式會作用在 pin 3、5、6、9、10、11、13、29、30、31、32;在 86Duino PLC 上,這個函式會作用在 pin 1、3、4、7。
呼叫 analogWrite()
之前不需要去呼叫 pinMode()
來設定 pin 腳為輸出。
analogWrite 或 analogRead 函式都不會對類比訊號輸入做額外的動作。
語法
analogWrite(pin, value)
參數
pin
: 輸出 PWM 的 pin 腳
value
: PWM 的 duty 值 – 預設值介於 0 (常閉狀態) 到 255 (常開狀態)
可以呼叫 analogWriteResolution()
去設定更高的 PWM 數值
回傳
無回傳值
範例
根據可變電阻讀取到的數值,設定 LED 的亮度比例
int ledPin = 9; // LED 燈連接到數位 pin 9 int analogPin = 3; // 可變電阻連接到類比 pin 3 int val = 0; // 儲存讀取到的電壓數值 void setup() { pinMode(ledPin, OUTPUT); // 設定 pin 9 腳為輸出 } void loop() { val = analogRead(analogPin); // 讀取類比輸入 pin 腳 analogWrite(ledPin, val / 4); // analogRead 數值從 0 到 1023 // analogWrite 數值從 0 到 255 }
See also
- analogRead()
- analogWriteResolution()
- Tutorial: PWM
本頁由熱血青年 LBU 譯自英文版。
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.