Skip to content

Commit c471d9f

Browse files
animeshsrivastava24per1234
authored andcommitted
Document PWM pins and frequency for all boards
Previously, the reference page only contained documentation of PWM pins and the PWM frequency of those pins for a few boards. This commit adds documentation for all official Arduino boards. The previous paragraph format did not scale well with the added information (which will continue to increase as Arduino creates new boards) so it was reformatted as a table. Fixes #587
1 parent b74cbb8 commit c471d9f

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

Language/Functions/Analog IO/analogWrite.adoc

+18-3
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,25 @@ subCategories: [ "Analog I/O" ]
1717

1818
[float]
1919
=== Description
20-
Writes an analog value (http://arduino.cc/en/Tutorial/PWM[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. The frequency of the PWM signal on most pins is approximately 490 Hz. On the Uno and similar boards, pins 5 and 6 have a frequency of approximately 980 Hz.
20+
Writes an analog value (http://arduino.cc/en/Tutorial/PWM[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.
21+
[options="header"]
22+
|====================================================================================================
23+
| Board | PWM Pins | PWM Frequency
24+
| Uno, Nano, Mini | 3, 5, 6, 9, 10, 11 | 490 Hz (pins 5 and 6: 980 Hz)
25+
| Mega | 2 - 13, 44 - 46 | 490 Hz (pins 4 and 13: 980 Hz)
26+
| Leonardo, Micro, Yún | 3, 5, 6, 9, 10, 11, 13 | 490 Hz (pins 3 and 11: 980 Hz)
27+
| Uno WiFi Rev.2 | 3, 5, 6, 9, 10 | 976 Hz
28+
| MKR boards * | 0 - 8, 10, A3 (18), A4 (19) | 732 Hz
29+
| MKR1000 WiFi * | 0 - 8, 10, 11, A3 (18), A4 (19) | 732 Hz
30+
| Zero * | 3 - 13, A0 (14), A1 (15) | 732 Hz
31+
| Due ** | 2-13 | 1000 Hz
32+
| 101 | 3, 5, 6, 9 | pins 3 and 9: 490 Hz, pins 5 and 6: 980 Hz
33+
|====================================================================================================
34+
{empty}* 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. +
35+
{empty}** In addition to PWM capabilities on the pins noted above, the Due has true analog output when using `analogWrite()` on pins `DAC0` and `DAC1`.
36+
2137
[%hardbreaks]
22-
On most Arduino boards (those with the ATmega168 or ATmega328P), this function works on pins 3, 5, 6, 9, 10, and 11. On the Arduino Mega, it works on pins 2 - 13 and 44 - 46. Older Arduino boards with an ATmega8 only support `analogWrite()` on pins 9, 10, and 11.
23-
The Arduino DUE supports `analogWrite()` on pins 2 through 13, plus pins DAC0 and DAC1. Unlike the PWM pins, DAC0 and DAC1 are Digital to Analog converters, and act as true analog outputs.
38+
2439
You do not need to call `pinMode()` to set the pin as an output before calling `analogWrite()`.
2540
The `analogWrite` function has nothing to do with the analog pins or the `analogRead` function.
2641
[%hardbreaks]

0 commit comments

Comments
 (0)