Arduino is an open-source electronics prototyping platform: a family of microcontroller boards paired with a development environment (IDE) and a vast ecosystem of libraries and shields, designed to make embedded electronics approachable. This page is the hub that gathers every tutorial related to Arduino: board overview, ecosystem, and usage tutorials sorted by difficulty. The generic overview of microcontroller families and the selection guide stay with microcontroller.

Tutorials

The tutorials of the Arduino module, in the recommended order: from the first blinking LED up to engineer level. Most of them apply a cross-cutting concept to Arduino, defined once for all the families. The entries marked (cross-cutting) are those shared pages of the skeleton, the rest is specific to Arduino.

Where to start? With getting started: install the IDE and blink a first LED on real hardware. The rest can be followed in order, or picked out as the project needs it.

Getting started

Learning the basics

Advanced topics

Engineer level

Multitasking (FreeRTOS) is covered on the ESP32 module side and in Firmware. More tutorials will fill in these levels as projects come along.

Why Arduino?

Arduino occupies a niche of accessibility rather than a niche of performance. Its strengths do not come from the specs of the chip, but from everything around it:

  • a huge community and documentation in abundance — for almost any sensor or module, a tutorial and a library already exist;
  • a shield ecosystem (stackable expansion boards) that add functions without any soldering;
  • 5 V tolerance on the I/O, compatible with a large pool of sensors and modules;
  • a gentle learning curve, ideal for a first step into embedded work.

It is therefore the default choice for learning, prototyping fast and proving a principle. Its limits show on the 8-bit boards (Uno R3, Mega, Nano): 2 kB of RAM on the Uno R3, no floating-point unit (float values are emulated, and therefore slow) and no native USB. When the project calls for wireless (Wi-Fi, Bluetooth), battery life or raw performance, another family is often the right answer. The decision is made with the selection guide on the microcontroller hub. Worth noting: apart from the Uno R4 WiFi, none of the boards in this overview carries a radio. For a connected object, look towards the ESP32.

Board overview

Three boards cover most of what a school project needs. The rest of the range (Leonardo, Due, Giga, Nano variants) is chosen case by case.

Arduino Uno R3 board seen from above|420

The Arduino Uno R3 board — the reference board of the overview.

Pinout of the Arduino Uno R3|600

Pinout of the Arduino Uno R3: digital pins, analog pins, power and buses.

BoardMCUFlash / RAMI/O (dig. / ana. / PWM)Notable featureTypical use case
Uno (R3 / R4)R3: ATmega328P (8-bit AVR, 16 MHz) · R4: Renesas RA4M1 (ARM Cortex-M4, 48 MHz)R3: 32 kB / 2 kB · R4: 256 kB / 32 kB14 / 6 / 6reference board, shield form factor; R4: USB-C, DAC, CAN bus, WiFi variant (ESP32-S3 + 12×8 LED matrix)learning, project baseline
Mega 2560ATmega2560 (8-bit AVR, 16 MHz)256 kB / 8 kB54 / 16 / 15large I/O countI/O-heavy projects (3D printers, for example)
NanoATmega328P (8-bit AVR, 16 MHz)32 kB / 2 kB14 / 8 / 6compact breadboard form factorcompact final integration

Moving from the Uno R3 (8-bit) to the Uno R4 (32-bit ARM) keeps the same form factor and the 5 V shield compatibility, while multiplying memory and compute power. It is a clear example of moving up a range without breaking the ecosystem.

Ecosystem

The reference environment is the Arduino IDE, which recognises the boards without any extra driver. For more structured projects, PlatformIO or the Arduino CLI offer a more powerful build chain. The language is C++ with a layer of helpers on top (the Wiring dialect), built around two functions: setup(), which runs once at start-up, and loop(), which repeats indefinitely. The built-in library manager gives access, in a few clicks, to thousands of sensor and module drivers.

This ecosystem reaches beyond Arduino hardware alone: the same development framework also programs the ESP32 (through the Arduino core) and many other boards. One boundary is worth keeping in mind. This block describes the tooling specific to Arduino, not the way embedded code is structured, which belongs to Firmware.

See also