# analogWrite(pin,value)

### 参数

| 参数名   | 描述                       |
| ----- | ------------------------ |
| pin   | 用于输入数值的引脚。               |
| value | 占空比：0（完全关闭）到255（完全打开）之间。 |

可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后，该引脚将产生一个稳定的特殊占空比方波，直到下次调用analogWrite()（或在同一引脚调用digitalRead()或digitalWrite()）。PWM信号的频率大约是490赫兹。

analogWrite函数与模拟引脚、analogRead函数没有直接关系。

### 说明和已知问题

引脚5和6的PWM输出将高于预期的占空比（输出的数值偏高）。这是因为millis()和delay()功能，和PWM输出共享相同的内部定时器。这将导致大多时候处于低占空比状态（如：0 - 10），并可能导致在数值为0时，没有完全关闭引脚5和6。

### 例子

通过读取电位器的阻值控制LED的亮度

```c
int ledPin = 9;  // LED连接到数字引脚9
int analogPin = 3;  //电位器连接到模拟引脚3
int val = 0;  //定义变量存以储读值
void setup(){
    pinMode (ledPin,OUTPUT);  //设置引脚为输出引脚
}

void loop(){
    val = analogRead (analogPin);  //从输入引脚读取数值
    analogWrite(ledPin,val / 4);  // 以val / 4的数值点亮LED（因为analogRead读取的数值从0到1023，而analogWrite输出的数值从0到255）
    }
```
