Stax
Tools

Arduino Pinout Reference

Complete Arduino Uno R3 pinout with digital, analog, and PWM pins.

PowerDigital I/OAnalogPWMSpecialGND~ = PWM capable
Quick reference: Special functions
BusPins
UARTD0 (RX), D1 (TX)
SPID10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK)
I2CA4 (SDA), A5 (SCL)
InterruptsD2 (INT0), D3 (INT1)
PWMD3, D5, D6, D9, D10, D11
Arduino Uno R3 (ATmega328P) — 28 pins. Click any pin for details.

Arduino Uno R3 pinout reference — every pin explained

The Arduino Uno is the most widely used microcontroller board in the world for electronics projects, education, and rapid prototyping. Its 28-pin DIP ATmega328P microcontroller, combined with 14 digital I/O pins and 6 analog input pins, provides enough flexibility for the vast majority of beginner and intermediate projects without the complexity of more capable boards. This pinout reference lets you search by pin name, number, or function and instantly see what each pin does.

Digital pins — GPIO, PWM, and interrupts

The Arduino Uno has 14 digital pins (D0–D13), each configurable as INPUT or OUTPUT using pinMode(). Six of these pins (D3, D5, D6, D9, D10, D11) support PWM output via analogWrite(), which is useful for controlling motor speed, LED brightness, and servo position. Pins D2 and D3 support hardware interrupts (INT0 and INT1) for responding to external events without polling. D0 (RX) and D1 (TX) share the hardware UART used by the USB-to-serial converter — avoid these pins when using Serial.print().

Analog pins and ADC

Pins A0–A5 are 10-bit analog inputs connected to the ATmega328P's ADC. They return values from 0 to 1023, representing 0 V to the reference voltage (5 V by default). The AREF pin lets you set a custom reference voltage for higher precision in a narrower range. A4 and A5 double as SDA and SCL for the I2C bus — connect sensors like BME280, MPU6050, or OLED displays to these two pins, along with VCC and GND.

SPI bus pins

SPI (Serial Peripheral Interface) on the Arduino Uno uses D10 (SS), D11 (MOSI), D12 (MISO), and D13 (SCK). SPI is faster than I2C and used for SD card modules, SPI-based OLED displays, radio modules (nRF24L01, LoRa), and Ethernet shields. D13 also drives the built-in LED — useful for blink-test debugging but means the LED flickers during SPI communication, which is expected behaviour.

Power pins and voltage rails

The Uno provides 5V and 3.3V regulated outputs from its onboard voltage regulators. The 5V pin can supply up to ~400 mA to external components. The 3.3V pin provides ~150 mA — suitable for most Bluetooth and WiFi modules but check the current draw of your specific module before connecting. VIN accepts 7–12 V input when powering the board via the barrel jack. The Uno has GND pins on both the power header and the digital header for convenient grounding.

Frequently asked questions

Which Arduino Uno pins support PWM?
Pins D3, D5, D6, D9, D10, and D11 support 8-bit PWM output using analogWrite(). They are marked with a tilde (~) on the board. The default PWM frequency is approximately 490 Hz for most pins, except D5 and D6 which run at 980 Hz due to sharing a timer with millis().
Which pins are used for I2C on Arduino Uno?
On the Arduino Uno, A4 is the SDA (data) line and A5 is the SCL (clock) line for the I2C bus, used via the Wire library. These pins are shared with analog input functionality — you can use them as analog inputs when I2C is not in use. The Uno supports one I2C bus and can address up to 127 devices on it.
Which pins are used for SPI on Arduino Uno?
The SPI pins on the Arduino Uno are: D10 (SS — Slave Select or Chip Select), D11 (MOSI — Master Out Slave In), D12 (MISO — Master In Slave Out), and D13 (SCK — Serial Clock). Note that D13 also drives the built-in LED, which can interfere with SPI communication if the LED load is not accounted for.

Related tools