Arduino UNO R3 Pinout: GPIO, PWM, ADC, SPI, I2C and Interrupts

Arduino UNO R3 pinout guide for the ATmega328P: D0-D13, A0-A5, PWM, 10-bit ADC, SPI, I2C, UART, external interrupts, timers and 5 V power.

The Arduino UNO R3 is the classic ATmega328P-based Arduino board and remains the reference point for a huge amount of Arduino documentation, shields, examples and educational material.

Its architecture is simple:

  • 8-bit ATmega328P at 16 MHz;
  • 5 V logic;
  • 14 digital I/O pins;
  • 6 analog inputs;
  • 6 PWM outputs;
  • one hardware UART;
  • one SPI interface;
  • one I²C/TWI interface;
  • two dedicated external interrupt pins.

UNO R3 Specifications

Feature UNO R3
Main MCU ATmega328P
Architecture 8-bit AVR
Clock 16 MHz
Logic voltage 5 V
Flash 32 kB
SRAM 2 kB
EEPROM 1 kB
Digital I/O 14
Analog inputs 6
PWM outputs 6
ADC 10 bit
USB interface ATmega16U2 USB-to-serial/interface MCU on official board
Maximum recommended current per I/O 20 mA

Complete Digital Pinout

Arduino pin ATmega328P pin Main functions
D0 PD0 UART RX, digital I/O, PCINT16
D1 PD1 UART TX, digital I/O, PCINT17
D2 PD2 INT0, digital I/O, PCINT18
D3 PD3 INT1, PWM OC2B, PCINT19
D4 PD4 GPIO, T0/XCK, PCINT20
D5 PD5 PWM OC0B, PCINT21
D6 PD6 PWM OC0A, comparator input, PCINT22
D7 PD7 GPIO, comparator input, PCINT23
D8 PB0 GPIO, Timer1 input capture, PCINT0
D9 PB1 PWM OC1A, PCINT1
D10 PB2 PWM OC1B, SPI SS, PCINT2
D11 PB3 PWM OC2A, SPI MOSI/COPI, PCINT3
D12 PB4 SPI MISO/CIPO, PCINT4
D13 PB5 SPI SCK, LED_BUILTIN, PCINT5

PWM Pins

The six standard PWM outputs are:

Use:

for approximately 50% duty cycle on D9.

PWM Timer Mapping

Timer Pins
Timer0 D5, D6
Timer1 D9, D10
Timer2 D3, D11

Timer0 also supports Arduino timekeeping functions such as millis() and delay(). Reconfiguring it directly can therefore break normal timing.

Analog Inputs

The six analog inputs are:

They map to ATmega328P ADC0-ADC5 and provide 10-bit conversion.

With a nominal 5 V reference, one ideal LSB is about 4.88 mV.

A0-A5 Can Also Be Digital Pins

The analog pins are also digital-capable and may be referred to as:

I²C

The hardware TWI/I²C bus uses:

UNO R3 also duplicates SDA/SCL near the AREF header for shield compatibility. They are the same electrical bus, not a second I²C peripheral.

SPI

The hardware SPI pins are:

The same SPI signals are available on the 6-pin ICSP header.

D10 and SPI Master Mode

D10 is the ATmega328P hardware SS pin. When the MCU is used as an SPI controller/master, configure the hardware SS pin as an output so an unexpected low level cannot force the SPI peripheral into slave mode.

UART

The official UNO R3 uses an ATmega16U2 as the USB interface. That USB interface is connected to the ATmega328P hardware UART, which means external devices on D0/D1 can interfere with uploads and Serial Monitor.

External Interrupts

The two dedicated external interrupt pins are:

Use:

Pin-Change Interrupts

Most UNO R3 GPIO also support the ATmega328P pin-change interrupt system:

  • D0-D7 through Port D;
  • D8-D13 through Port B;
  • A0-A5 through Port C.

Unlike INT0/INT1, pin-change interrupts share vectors by port and require lower-level code or a supporting library.

Built-In LED

The built-in user LED is connected to:

Because D13 is also SPI SCK, the LED can flicker during SPI communication.

AREF

The AREF pin is used for the ADC reference. Arduino can select an external reference with:

Only connect a valid external reference within the ATmega328P limits.

Internal 1.1 V Reference

The ATmega328P also includes an internal nominal 1.1 V reference, useful when measuring smaller signals that fit inside that range.

Input Capture on D8

D8 maps to Timer1 input capture:

This can timestamp external edges in hardware and is useful for RPM, frequency and pulse-width measurements.

5 V Logic

UNO R3 is a 5 V board. This is one reason it remains easy to use with older sensors, LCDs, relay boards and shields.

Modern 3.3 V sensors may still require level shifting, especially when their inputs are not 5 V tolerant.

GPIO Current

Arduino’s pinout specifies a maximum recommended current of:

The ATmega328P absolute maximum ratings should not be treated as normal design targets. Use drivers for power loads.

Power Pins

The board provides:

  • VIN;
  • 5 V;
  • 3.3 V;
  • GND;
  • IOREF;
  • RESET.

Arduino documents VIN operation across roughly 6–20 V, with 7–12 V commonly recommended for comfortable regulator operation.

Classic Limitations

UNO R3 does not include:

  • Wi-Fi;
  • Bluetooth;
  • native USB on the main ATmega328P;
  • CAN controller;
  • RTC;
  • true DAC;
  • large RAM.

Those limitations are exactly why newer boards such as UNO R4 exist, but they also keep the UNO R3 architecture easy to understand.

Quick Reference

Final Thoughts

The UNO R3 pinout became the de facto Arduino reference because it is simple, predictable and extremely well documented.

The core rules are easy to remember:

For modern projects requiring more RAM, native USB, CAN, DAC or wireless connectivity, newer boards are more capable. For learning AVR timers, GPIO and the classic Arduino API, UNO R3 remains one of the clearest platforms available.

Share your love