Description
Writes an analog value (PWM wave) to a pin. Can be used to light a LED at varying brightnesses or drive a motor at various speeds. After a call to analogWrite()
, the pin will generate a steady square wave of the specified duty cycle until the next call to analogWrite()
(or a call to digitalRead()
or digitalWrite()
) on the same pin.
Board | PWM Pins | PWM Frequency |
---|---|---|
Uno, Nano, Mini |
3, 5, 6, 9, 10, 11 |
490 Hz (pins 5 and 6: 980 Hz) |
Mega |
2 - 13, 44 - 46 |
490 Hz (pins 4 and 13: 980 Hz) |
Leonardo, Micro, Yún |
3, 5, 6, 9, 10, 11, 13 |
490 Hz (pins 3 and 11: 980 Hz) |
Uno WiFi Rev.2 |
3, 5, 6, 9, 10 |
976 Hz |
MKR boards * |
0 - 8, 10, A3 (18), A4 (19) |
732 Hz |
MKR1000 WiFi * |
0 - 8, 10, 11, A3 (18), A4 (19) |
732 Hz |
Zero * |
3 - 13, A0 (14), A1 (15) |
732 Hz |
Due ** |
2-13 |
1000 Hz |
101 |
3, 5, 6, 9 |
pins 3 and 9: 490 Hz, pins 5 and 6: 980 Hz |
* In addition to PWM capabilities on the pins noted above, the MKR and Zero boards have true analog output when using analogWrite()
on the DAC0
(A0
) pin.
** In addition to PWM capabilities on the pins noted above, the Due has true analog output when using analogWrite()
on pins DAC0
and DAC1
.
You do not need to call pinMode()
to set the pin as an output before calling analogWrite()
.
The analogWrite
function has nothing to do with the analog pins or the analogRead
function.
Syntax
analogWrite(pin, value)
Parameters
pin
: the Arduino pin to write to. Allowed data types: int
.
value
: the duty cycle: between 0 (always off) and 255 (always on). Allowed data types: int
.
Returns
Nothing