Arduino Uno Rev3

🔍 Hover or click board hotspots to inspect components
Select a component to view technical specifications.

Components Index

What is Arduino Uno?

The Arduino Uno is the perfect board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can start playing with. Equipped with the ATmega328P microcontroller, it provides a stable environment for hundreds of libraries and thousands of tutorials online. Start building with our basic projects.

The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller. The board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. It's the industry standard for prototyping and education, trusted by millions of makers worldwide. Use our electronics calculators for component selection.

Key Features

⚡

Easy to Use

Simple programming interface with Arduino IDE. Perfect for beginners and experts alike.

🔌

14 Digital I/O Pins

6 pins provide PWM output for motor control, LED dimming, and more.

📊

6 Analog Inputs

10-bit resolution (0-1023) for reading sensors like temperature, light, and potentiometers.

🔋

Multiple Power Options

USB powered or external 7-12V DC adapter. Automatic power source selection.

📚

Extensive Libraries

Thousands of open-source libraries for sensors, displays, motors, and communication protocols.

ðŸ›Ąïļ

Built-in Protection

Resettable polyfuse protects USB ports. Reverse voltage protection on power jack.

Pin Configuration

Digital Pins (0-13)

Can be used as INPUT or OUTPUT. Operate at 5V. Each pin can provide or receive 20mA of current.

  • Pins 0-1: Serial communication (TX/RX)
  • Pins 2-3: External interrupts
  • Pins 3, 5, 6, 9, 10, 11: PWM output (analogWrite)
  • Pin 13: Built-in LED

Analog Pins (A0-A5)

10-bit analog-to-digital converter (ADC). Reads voltages from 0-5V and converts to values 0-1023.

  • Can also be used as digital I/O pins
  • Perfect for reading sensors (temperature, light, etc.)
  • A4 (SDA) and A5 (SCL) support I2C communication

Power Pins

  • 5V: Regulated 5V output (max 500mA from USB)
  • 3.3V: 3.3V output (max 50mA)
  • GND: Ground pins (multiple available)
  • Vin: Input voltage (7-12V recommended)
  • IOREF: Reference voltage for shields

Communication Protocols

Serial (UART)

Pins 0 (RX), 1 (TX)

Communication with computer via USB or other serial devices

I2C (TWI)

A4 (SDA), A5 (SCL)

Connect multiple devices using only 2 wires. Great for sensors and displays

SPI

Pins 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)

High-speed communication for SD cards, displays, and wireless modules

Advanced Topics & Expert Knowledge

⚡

Hardware Interrupts

Pins 2 and 3 support external interrupts. Use attachInterrupt() to trigger functions instantly when a pin changes state, without polling in loop().

attachInterrupt(digitalPinToInterrupt(2), ISR, RISING);

Use case: Rotary encoders, emergency stops, precise timing events

〰ïļ

PWM Frequency Control

Default PWM frequency is ~490Hz (pins 5,6 at ~980Hz). Modify timer registers to change frequency for motor control or audio generation.

TCCR1B = (TCCR1B & 0xF8) | 0x01; // 31kHz on pins 9,10

Warning: Changing PWM frequency affects delay() and millis() timing

🐕

Watchdog Timer (WDT)

Hardware timer that resets the Arduino if your code freezes. Essential for mission-critical applications and remote deployments.

wdt_enable(WDTO_2S); // Reset if no wdt_reset() for 2s

Pro tip: Call wdt_reset() regularly in loop() to prevent unwanted resets

ðŸ’ū

EEPROM Persistence

1KB non-volatile memory survives power loss. Store calibration data, settings, or sensor thresholds. Limited to ~100,000 write cycles per cell.

EEPROM.write(addr, value); // EEPROM.read(addr);

Best practice: Use EEPROM.update() to avoid unnecessary writes

🔋

Low Power Modes

Put ATmega328P into sleep modes to reduce power consumption from 15mA to 0.1ΞA. Critical for battery-powered projects.

LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

Library: LowPower by Rocket Scream (supports multiple sleep modes)

🔧

Bootloader & ISP Programming

The bootloader occupies 0.5KB flash. Use ISP (In-System Programming) to burn bootloaders, set fuses, or upload code without USB.

Tools → Burn Bootloader (requires ISP programmer)

Advanced: Modify fuse bits to disable BOD or change clock source

📚 Official Citations & Technical References

To ensure the absolute accuracy and reliability of this guide, all specifications, pinouts, and register settings have been cross-verified with official manufacturer documentation: