2.0 Hardware Architecture
While numerous Arduino boards exist, they share a common set of core components. The Arduino UNO is the most popular board and serves as the best starting point for understanding the platform’s hardware.
2.1 Core Components of the Arduino UNO
- Main Microcontroller: The “brain” of the board, typically an ATMEL integrated circuit (IC). The UNO R3 uses an ATmega328P.
- Power Inputs: The board can be powered via the Power USB connection (1) or a Power (Barrel Jack) (2) from an AC mains adapter.
- Voltage Regulator: Stabilizes the DC voltages used by the processor and other components.
- Crystal Oscillator: Provides a clock signal (16 MHz on the UNO) to the microcontroller, which is crucial for time-based operations.
- Digital I/O Pins: The UNO has 14 digital pins (15) that can be configured as either inputs or outputs. Six of these pins (marked with a ~) also provide Pulse Width Modulation (PWM) output.
- Analog Input Pins: The UNO has six analog input pins (A0-A5) that can read signals from analog sensors and convert them into a digital value between 0 and 1023.
- Power Pins:
- 3.3V (6) & 5V (7): Provide regulated 3.3-volt and 5-volt power outputs.
- GND (8): Ground pins.
- Vin (9): Allows powering the board from an external source.
- Reset Button: A physical button (17) to restart the sketch from the beginning. A RESET pin (5) is also available for an external reset button.
- LED Indicators:
- Power LED: Indicates the board is receiving power.
- TX/RX LEDs (13): Flash when data is being transmitted (TX) or received (RX) over the serial connection.
- ICSP Header: An AVR programming header (12) that provides an expansion of the output via the Serial Peripheral Interface (SPI).
- AREF: Stands for Analog Reference, used to set an external reference voltage for the analog input pins.
2.2 Arduino Board Types and Specifications
Arduino boards vary based on the microcontroller they use, which dictates their capabilities, including I/O pin count, speed, operating voltage, and memory.
Boards based on ATMEGA328 Microcontroller
| Board Name | Operating Volt | Clock Speed | Digital I/O | Analog Inputs | PWM | UART | Programming Interface |
| Arduino Uno R3 | 5V | 16MHz | 14 | 6 | 6 | 1 | USB via ATMega16U2 |
| Arduino Pro | 3.3V / 5V | 8MHz / 16MHz | 14 | 6 | 6 | 1 | FTDI-Compatible Header |
| Arduino Mini 05 | 5V | 16MHz | 14 | 8 | 6 | 1 | FTDI-Compatible Header |
| LilyPad Arduino 328 | 3.3V | 8MHz | 14 | 6 | 6 | 1 | FTDI-Compatible Header |
Boards based on ATMEGA32u4 Microcontroller
| Board Name | Operating Volt | Clock Speed | Digital I/O | Analog Inputs | PWM | UART | Programming Interface |
| Arduino Leonardo | 5V | 16MHz | 20 | 12 | 7 | 1 | Native USB |
| Pro Micro | 5V / 3.3V | 16MHz / 8MHz | 14 | 6 | 6 | 1 | Native USB |
Boards based on ATMEGA2560 Microcontroller
| Board Name | Operating Volt | Clock Speed | Digital I/O | Analog Inputs | PWM | UART | Programming Interface |
| Arduino Mega 2560 R3 | 5V | 16MHz | 54 | 16 | 14 | 4 | USB via ATMega16U2B |
Boards based on AT91SAM3X8E Microcontroller (32-bit ARM)
| Board Name | Operating Volt | Clock Speed | Digital I/O | Analog Inputs | PWM | UART | Programming Interface |
| Arduino Due | 3.3V | 84MHz | 54 | 12 | 12 | 4 | USB native |
Note: The Arduino Due and Zero boards operate at 3.3V. Applying voltages higher than 3.3V to any I/O pin can damage these boards.