当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。