當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Arduino analogWrite()用法及代碼示例

[模擬輸入/輸出]

說明

將模擬值 (PWM wave) 寫入引腳。可用於以不同的亮度點亮 LED 或以不同的速度驅動電機。調用 analogWrite() 後,該引腳將生成指定占空比的穩定矩形波,直到在同一引腳上再次調用 analogWrite()(或調用 digitalRead()digitalWrite())。

木板 PWM 引腳 脈寬調製頻率

Uno、納米、迷你

3、5、6、9、10、11

490 赫茲(引腳 5 和 6:980 赫茲)

Mega

2 - 13, 44 - 46

490 赫茲(引腳 4 和 13:980 赫茲)

萊昂納多、微、雲

3、5、6、9、10、11、13

490 赫茲(引腳 3 和 11:980 赫茲)

Uno WiFi Rev2,Nano Every

3、5、6、9、10

976赫茲

MKR 板 *

0 - 8、10、A3、A4

732赫茲

MKR1000 WiFi *

0 - 8、10、11、A3、A4

732赫茲

零 *

3 - 13, A0, A1

732赫茲

納米 33 IoT *

2, 3, 5, 6, 9 - 12, A2, A3, A5

732赫茲

Nano 33 BLE/BLE 感應

1 - 13, A0 - A7

500赫茲

到期的 **

2-13

1000赫茲

101

3、5、6、9

針腳 3 和 9:490 Hz,針腳 5 和 6:980 Hz

* 除了上述引腳上的 PWM 函數外,MKR、Nano 33 IoT 和 Zero 板在使用時具有真正的模擬輸出analogWrite()DAC0(A0) 別針。
** 除了上述引腳上的 PWM 函數外,Due 在使用時具有真正的模擬輸出analogWrite()在別針上DAC0DAC1.

你不需要調用pinMode()在調用之前將引腳設置為輸出analogWrite().
analogWrite函數與模擬引腳或analogRead函數。

用法

analogWrite(pin, value)

參數

pin:要寫入的 Arduino 引腳。允許的數據類型:int.
value:占空比:介於 0(始終關閉)和 255(始終開啟)之間。允許的數據類型:int.

返回

示例代碼

將輸出設置為與從電位計讀取的值成比例的 LED。

int ledPin = 9;      // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read value

void setup() {
  pinMode(ledPin, OUTPUT);  // sets the pin as output
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}

注意事項和警告

引腳 5 和 6 上生成的 PWM 輸出將具有 higher-than-expected 占空比。這是因為與 millis()delay() 函數的交互,它們共享用於生成這些 PWM 輸出的相同內部定時器。這將主要在低 duty-cycle 設置(例如 0 - 10)時注意到,並且可能導致值 0 未完全關閉引腳 5 和 6 上的輸出。

相關用法


注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 analogWrite()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。