Arduino Uno R3 pinout
The classic Arduino board for learning. It uses 5 V logic, so 3.3 V-only sensors need a level shifter.
The real app with a simulated Arduino Uno R3, running in your browser. No install, nothing to plug in.
At a glance
- Chip
- ATmega328P
- Processor
- 8-bit AVR ATmega328P at 16 MHz, 2 KB SRAM, 32 KB flash, 1 KB EEPROM
- Logic level
- 5 V. 3.3 V-only sensors need a level shifter.
- Flashing tool
- avrdude
- Arduino board (FQBN)
- arduino:avr:uno
- Live pin view in BoardPilot
- Yes (diagnostic agent available)
Pins to avoid or use with care
USB serial: TX→1 (PD1), RX←0 (PD0)
Used for uploading and the serial monitor. Anything connected here can break uploads.
Good pins for LEDs, buttons and signals
2, ~3, 4, ~5, ~6, 7, 8, ~9
Default pins in Arduino
- I2C
- SDA = A4, SCL = A5. Only these pins work with the Wire library defaults. I2C only works on A4 (SDA) and A5 (SCL); the SDA/SCL pins near AREF are the same signals.
- SPI
- MOSI = ~11, MISO = 12, SCK = 13, CS = ~10.
- Analog inputs
- A0, A1, A2, A3, A4, A5 (0–5 V)
All 31 pins
| Pin | GPIO | Chip pin | Functions | Notes |
|---|---|---|---|---|
| SCL | 19 | PC5 | GPIO, ADC5, I2C_SCL (default) | Same signal as A5 (I2C clock). |
| SDA | 18 | PC4 | GPIO, ADC4, I2C_SDA (default) | Same signal as A4 (I2C data). |
| AREF | — | ADC_REF | Analog reference input. Leave it unconnected unless your code calls analogReference(EXTERNAL); never power parts from it. | |
| GND | — | |||
| 13 | 13 | PB5 | GPIO, SPI_SCK (default) | The built-in LED "L" is on this pin (also SPI clock). |
| 12 | 12 | PB4 | GPIO, SPI_MISO (default) | |
| ~11 | 11 | PB3 | GPIO, PWM, SPI_MOSI (default) | |
| ~10 | 10 | PB2 | GPIO, PWM, SPI_CS (default) | SPI chip select. Keep it an OUTPUT when using SPI, or SPI can stop working. |
| ~9 | 9 | PB1 | GPIO, PWM | |
| 8 | 8 | PB0 | GPIO | |
| 7 | 7 | PD7 | GPIO | |
| ~6 | 6 | PD6 | GPIO, PWM | |
| ~5 | 5 | PD5 | GPIO, PWM | |
| 4 | 4 | PD4 | GPIO | |
| ~3 | 3 | PD3 | GPIO, INT1, PWM | |
| 2 | 2 | PD2 | GPIO, INT0 | |
| TX→1 | 1 | PD1 | GPIO, UART0_TX | Serial TX. Shared with the USB link: using it for parts can break uploads and the serial monitor. |
| RX←0 | 0 | PD0 | GPIO, UART0_RX | Serial RX. Shared with the USB link: using it for parts can break uploads and the serial monitor. |
| IOREF | — | Tells shields that this board uses 5 V logic. Connected to 5V; not meant to power parts. | ||
| RESET | — | RESET | Reset input. Pull it LOW (or press the button) to restart the board. | |
| 3.3V | — | 3.3 V output, 50 mA max. Enough for one or two small sensors. | ||
| 5V | — | 5 V output from USB or the on-board regulator. | ||
| GND | — | |||
| GND | — | |||
| Vin | — | Power input (7-12 V recommended, 20 V max) from the barrel jack or an external supply. It is not fed from USB, so do not use it to power parts. | ||
| A0 | 14 | PC0 | GPIO, ADC0 | |
| A1 | 15 | PC1 | GPIO, ADC1 | |
| A2 | 16 | PC2 | GPIO, ADC2 | |
| A3 | 17 | PC3 | GPIO, ADC3 | |
| A4 | 18 | PC4 | GPIO, ADC4, I2C_SDA (default) | Default I2C SDA (same signal as the SDA pin). |
| A5 | 19 | PC5 | GPIO, ADC5, I2C_SCL (default) | Default I2C SCL (same signal as the SCL pin). |
Questions
Which pins are I2C on the Arduino Uno R3?
SDA is A4 and SCL is A5 (the defaults of the Arduino Wire library). Only certain pins support I2C in hardware, so use these unless you know your core allows others.
Which Arduino Uno R3 pins should I avoid?
TX→1, RX←0 (USB serial link).
Is the Arduino Uno R3 5 V tolerant?
The Arduino Uno R3 runs at 5 V, so 5 V sensors connect directly. 3.3 V-only parts need a level shifter.
Which pins can read analog voltage on the Arduino Uno R3?
A0, A1, A2, A3, A4, A5, from 0 to 5 V.
How do I upload code to the Arduino Uno R3?
In the Arduino IDE pick the board arduino:avr:uno (core arduino:avr).
Wiring guides for the Arduino Uno R3
Step-by-step wiring, voltage checks and test code for the most used parts:
BME280 BMP280 DHT22 DHT11 HC-SR04 SSD1306 OLED MPU6050 DS18B20 WS2812B LED strip SG90 servo Relay module HC-SR501 PIR LCD 1602 I2C INA219 VL53L0X BH1750 MAX30102 RC522 RFID NEO-6M GPS Capacitive soil moisture sensor ADS1115 TM1637 28BYJ-48 stepper L298N Potentiometer Push button LED Joystick module SD card module AHT20
Compare
ESP32 DevKit vs Arduino Uno R3 Arduino Uno R3 vs Arduino Nano Arduino Uno R3 vs Arduino Mega 2560 R3
Learn the basics
Lesson: What is a microcontroller? Lesson: Hardware basics for software developers Lesson: GPIO: pins in and out Pinout GPIO Logic level (HIGH and LOW) Arduino Bootloader
Check your wiring with BoardPilot
BoardPilot shows this board in 3D, flags risky pins as you wire, and flashes it safely with a backup first.
Download BoardPilotSources
- Arduino UNO Rev3 Eagle design files (UNO-TH_Rev3e), Board outline and header pad coordinates (IOH, IOL, POWER, AD)
- Arduino UNO R3 datasheet (A000066), Connector pinouts; IOREF connected to 5V; VIN 6-20 V
- Arduino UNO R3 full pinout (A000066)
- Microchip ATmega328P datasheet (DS40002061), 1 Pin Configurations; 14.3 Alternate Port Functions; 24 Analog-to-Digital Converter
- arduino/ArduinoCore-avr variants/standard/pins_arduino.h, Arduino pin numbers, SPI/I2C defaults, LED_BUILTIN, A0=14
- arduino/ArduinoCore-avr boards.txt, USB VID/PID, upload protocol and speed
- Board data file and source notes on GitHub