What the Board Actually Contains

The Arduino Uno R3 is built around an ATmega328P microcontroller running at 16 MHz. On-board, it carries 32 KB of flash memory (with 0.5 KB reserved for the bootloader), 2 KB of SRAM, and 1 KB of EEPROM. A separate ATmega16U2 chip handles USB-to-serial conversion, meaning the board shows up as a virtual serial port on any host computer without requiring a separate USB adapter.

Power can arrive via the barrel jack (7–12 V DC recommended, 6–20 V tolerated), the USB connector (5 V regulated from the host), or the Vin pin. An on-board voltage regulator steps the barrel-jack input down to 5 V for the logic supply and exposes a regulated 3.3 V rail at up to 50 mA.

Pin Layout

Digital I/O

Pins D0 through D13 are general-purpose digital inputs or outputs, each rated at 40 mA maximum current with a recommended maximum of 20 mA to stay within safe operating limits. Six of these pins (D3, D5, D6, D9, D10, D11) support pulse-width modulation via the analogWrite() function at an 8-bit resolution (0–255). D0 and D1 are also the hardware UART TX and RX lines; uploading a sketch while something is connected to those pins will cause upload failures.

Analog Inputs

Pins A0 through A5 are 10-bit ADC channels with a default voltage reference of 5 V, giving a resolution of approximately 4.9 mV per step. The reference can be switched to an internal 1.1 V bandgap or to an external voltage applied to the AREF pin — useful when measuring signals in a narrow range and needing finer resolution. All six analog pins can also function as digital I/O if assigned with pinMode().

SPI, I²C, and UART

The board exposes hardware SPI on pins D10 (SS), D11 (MOSI), D12 (MISO), and D13 (SCK). Hardware I²C is on A4 (SDA) and A5 (SCL) — these pins are also broken out on a dedicated header next to the AREF pin on R3 boards. Hardware UART on D0/D1 is shared with the USB-serial bridge, so debug output via Serial.print() goes to the same port used for uploading.

Arduino Uno board perspective view showing USB port, barrel jack, and pin headers

Arduino Uno R3 showing the USB-B connector (upper left), DC barrel jack, and the two pin-header rows. Image: Wikimedia Commons, CC BY-SA.

Installing the Arduino IDE

The Arduino IDE 2.x is available as a free download for Windows, macOS, and Linux. After installation, open Tools → Board → Arduino AVR Boards → Arduino Uno and select the correct COM port under Tools → Port. On Windows, the board usually appears as COMx; on Linux as /dev/ttyACM0. The port only appears when the board is physically connected and the USB driver is loaded (Windows may require the CH340 or 16U2 driver depending on the board revision).

Writing and Uploading a Sketch

Every Arduino sketch has two required functions: setup(), which runs once after reset, and loop(), which runs continuously afterward. The minimal blink sketch demonstrates both:

Set pinMode(LED_BUILTIN, OUTPUT) in setup, then alternate between digitalWrite(LED_BUILTIN, HIGH) and LOW with a 1000 ms delay in loop. The on-board LED connected to D13 will flash at 1 Hz. Click the Upload button (the right-pointing arrow) — the IDE compiles, verifies, and flashes the hex file via the bootloader. The process takes 5–10 seconds; the TX/RX LEDs on the board will flicker during the transfer.

Common Wiring Mistakes on a Breadboard

  • No current-limiting resistor on LEDs: An LED connected directly between an output pin and GND will draw up to 100 mA at forward bias, which exceeds the 40 mA absolute maximum and degrades the output driver over time. A 220–470 Ω resistor keeps current at 10–20 mA.
  • Floating inputs: A digital input pin left unconnected reads random noise. Use INPUT_PULLUP mode or an external 10 kΩ pull-up resistor to establish a defined default state.
  • 5 V to 3.3 V devices: Connecting a 5 V output directly to a 3.3 V sensor (e.g., many ESP8266 modules, some IMUs) risks permanent damage to the sensor. A two-resistor voltage divider or a dedicated level-shifter IC resolves this.
  • Reverse polarity on the barrel jack: The on-board protection is minimal. Applying reversed polarity at the DC jack can destroy the regulator. Check the centre-positive marking before connecting a power supply.

Where to Buy in Poland

Original Arduino Uno boards (manufactured by Arduino SRL/Arduino LLC) carry a price of approximately 120–160 PLN at Polish distributors. Compatible clones with equivalent CH340 USB chips are available for 30–60 PLN at Botland, TME, and Kamami. For educational use, clones perform identically; for production or safety-critical applications, the genuine board's documented test procedures are preferable.

Related Reading

Raspberry Pi

Raspberry Pi Home Automation Projects

How to wire sensors, configure GPIO, and run automations on Raspberry Pi hardware without cloud dependencies.

Read more

Robotics

Building Your First Robot with Arduino

Chassis, motors, driver boards, and the basic control loop needed to get a two-wheeled robot moving on command.

Read more