Arduino Nano PWM pins

Arduino Nano PWM pins: Pulse Width Modulation (PWM) is fundamental to some Arduino projects, allowing you to control a voltage supplied to devices which enables precise control over their output.

Arduino Nano PWM pins

The alternative way to generate an analogue voltage is to use a switched resistive divider such as the MCP4725 but the PWM signals available from some Arduino pins are often used because they are so convenient.

The voltage from the MCP4725 is a true analogue voltage while the PWM is an analogue voltage (that has some ripple on it) - but, even so, it is still very useful. You can see a detailed description and analysis of it in the analog output page.

A PWM signal is achieved by rapidly switching a digital signal on and off, where the ratio of the on-time to the total cycle time determines the effective voltage level, to get a stable DC output you must add smoothing to the PWM signal.

Arduino boards, including the popular Arduino Nano, have dedicated PWM pins that make it easier to control components that require analog-like signals LED brightness, and motor speed.

Arduino Nano PWM pins:

Nine things you need to know

  1. The first thing know about Arduino Nano PWM pins are the pin numbers. Here are the numbers for Arduino Nano PWM pins:

    1. Arduino pin 3        - Based on Timer 2
      Arduino pin 5        - Based on Timer 0
      Arduino pin 6        - Based on Timer 0
      Arduino pin 9        - Based on Timer 1
      Arduino pin 10      - Based on Timer 1
      Arduino pin 11      - Based on Timer 2

  2. The second thing to know about Arduino Nano PWM pins is that they are only available on specific pins and this is because timer outputs are used to generate PWM signals, and timers only send outputs to specific pins.

  3. The third thing to know about Arduino Nano PWM pins is that because timers are used to generate PWM signals you may not be able to use timers for other purposes.

  4. The fourth thing to know about Arduino Nano PWM pins is that there are 6 available PWM signals. This is true as each timer has two outputs specifically for generating PWM signals and there are a total of three timers available.

  5. The fifth thing to know about Arduino Nano PWM pins is that Arduino Uno and Arduino Nano share the same PWM pins i.e. they are identical and have identical pin numbers. It means changing from Uno to Nano is ultra-easy.

  6. The sixth thing know about Arduino Nano PWM pins is that the outputs are 8 bit. This means that the resolution of the output is 1/256 of the vtotal oltage. So fully on requires a value of 255, and fully off requires a value of zero. So for half volts (2.5V) you need a value of 127.

  7. The seventh thing know about Arduino Nano PWM pins is that the Arduino function analogWrite(pin, duty-cycle) is used to set the analog voltage at the pin.

  8. The eighth thing know about Arduino Nano PWM pins is that you must smooth the output using a capacitor/resistor or inductor/resistor pair: See the Arduino analogue output page.

On an Arduino Uno, the PWM pins are easy to identify with their tilde symbol '~' but there is not enough room for that on an Arduino Nano board. This symbol indicates that they can produce an analogue varying signal. Since the PWM signals are PWM signals and the updates to the PWM hardware do not take long, it is possible to update the PWM signal to create an audio frequency output for complex tones or even speech!

What can you do with PWM?

Here are a few of the possibilities that PWM gives you:

1. LED Brightness Control: PWM is widely used to control the brightness of LEDs, allowing you to create eye-catching lighting effects and conserve power - you know, that breathing LED.

2. Motor Speed Control: PWM is useful in controlling the speed of motors, such as DC motors and servo motors. By adjusting the duty cycle, you can vary the motor's speed smoothly.

3. Sound Generation: PWM can be used to produce simple musical tones or complex sound effects with the help of a speaker or a piezo buzzer.

4. Temperature Control: PWM is employed in temperature control systems, such as in thermostats or environmental chambers, to maintain precise temperature levels.


Pulse Width Modulation (PWM) is a fundamental technique used in Arduino projects to generate an analogue output voltage that you can supply to various components. The Arduino Uno/Nano, with its six PWM-capable pins, gives you a lot of flexibility with analogue voltage output.

You can create a wide range of projects, from LED lighting effects to complex audio output, to motor control which you can't do without PWM.

Note: Parts of this page were written using chatgpt as a research assistant.


Have your say about what you just read! Leave me a comment in the box below.

Don’t see the comments box? Log in to your Facebook account, give Facebook consent, then return to this page and refresh it.

Privacy Policy | Contact | About Me

Site Map | Terms of Use