If you're anything like us, tinkering with electronics is something you'd like to do—in theory, at least. Maybe you like dissecting broken gadgets, but never do anything with the bits you find other than stash them away for a rainy day (a drawer full of microwave parts? Check!). But who has the time to learn such a complex topic?

Arduino is the answer to all that: an open-source microcontroller board that's a fun and easy way to start learning electronics. And you can get started for less than $5 in hardware.

What Is Arduino?

Arduino is many things: it's a brand, a piece of hardware, a programming language, and an entire ecosystem of products. But broadly speaking, when discussing Arduino, we're referring to an open-source electronics prototyping platform. But what does that actually mean?

In simple terms, an Arduino is a little computer you can program to do things. It can get data from the world by connecting sensors as inputs, process that information in some way, then provide outputs in the form of motors, LEDs, or buzzers.

The Arduino Uno

The most popular Arduino microcontroller board is the Uno model. This is partly because it was one of the first, so it gained widespread adoption before further designs were created.

The Arduino Uno is technically defined by its shape and the location of the input and output pins. Everything in between that can change, so you'll find many versions of the Arduino Uno out there, but they still all do the same thing and run the same code.

labelled diagram of an arduino

The brain of the Uno model is an ATmega328P or 168 logic chip. This is the thing that stores and runs your code.

On the top of the circuit (that is, with the USB connector on your left), you'll find 14 digital input/output pin sockets. In your code you tell the Arduino whether to use a particular pin as input or output; they can be either, but not at the same time. Being digital, these can either read or emit a signal of zero or one (also called low or high). Since the Arduino runs at 5 volts, a low signal is 0V, while a high signal is 5V. There is no in-between.

In the bottom right, you'll find five analog input pins. Unlike the digital I/O pins, these are input only, and can work with sensors that have a variable voltage from 0-5V. They turn that variable voltage into a number from 1-1024. One example of an analog sensor is a light-dependent resistor (LDR), which varies how much voltage is allowed to pass through depending on the current light level. You should check whether your sensor is analog or digital before connecting it.

On the bottom left is a set of power pins. Most of the time you'll only use the +5V and GND (ground or 0V) pins, to provide power to sensors and smaller output devices. If you're connecting higher-powered motors or a string of LEDs, it's essential to power those externally and not try to pull all the power from your Arduino.

At best, you may burn out the Arduino, which is inexpensive to replace. At worst, if it's connected over USB, you may damage your computer's USB port.

The Arduino Uno Ecosystem

We mentioned that it was partly the shape of the board and pins that define an Arduino Uno. But why is this so important? Firstly is the concept of "shields". These are upgrades you can stack on top of the Arduino to add functionality. This could be your own custom-designed circuit board, or one that you've bought, such as an LCD screen.

arduino prototype shield stack

 

Secondly, because Uno is a standard shape, you'll find a vast range of cases, both ready-made or 3D printable designs to download and print at home, or even modify yourself.

arduino cases at thingiverse

It's Open-Source Hardware

You might be familiar with open-source software. That's easy to understand: anyone can look at and fix the code, or even make their own version of it. The same applies to Arduino hardware. That means anyone can copy the Arduino, modify it, put their own logo on it, and sell it. This isn't illegal. In fact, Arduino itself is built on the back of other open-source projects. For instance, the Arduino development software is based on Wiring, which is itself based on the Processing language!

The only rule is that you can't call it an actual "Arduino" device because that's a protected trademark. You can, however, claim that it's "Arduino-compatible".

fake and unofficial arduino boards
Right: fake Arduino. Left: Unofficial clone.

But if the hardware is the same, why would you buy a "fake" Arduino? While an official board can retail at over $20, you'll find clones with the exact same functionality for less than $5. You can even buy all the components individually and make your own from scratch.

But you should only do that if you want to learn more about what exactly is contained in an Arduino circuit board, not because you want to save money. It isn't cheaper, and the end result isn't as sleek.

arduino uno clones on aliexpress

Some manufacturers create Arduino-compatible boards that are exactly the same, but just cheaper. Some add more functionality than the original boards have. They might be in a unique shape designed for a particular application, add some more connectors, perhaps they have an LED matrix display built-in, or have added Wi-Fi.

For instance, the Lilypad is an Arduino-compatible development board designed for wearable projects and conductive threads.

lilypad arduino

 

One of our favorite Arduino-compatible boards is the NodeMCU, pictured below. We love it so much that we called it the Arduino-killer. It's tiny, has Wi-Fi built-in, and can be bought for as little as $3. It's perfect for compact internet-of-things and home automation projects.

esp12e nodemcu dev board

Meanwhile, the Teensy line of development boards pack a much bigger processing punch than Arduino boards, with a tiny form factor—making them perfect for small projects which rely on powerful processing at their core.

What's So Special About Arduino, Then?

At the heart of an Arduino is a programmable logic controller. They are not a new concept, and were around for decades before Arduino came along; for more details, see our guide to programmable logic controllers.

But the world of PLCs is somewhat arcane. Arduino made it easy. It combined an easy-to-use piece of hardware, reminiscent of the electronics kits we grew up with, and an accessible high-level programming environment which meant you wouldn't have to learn the dark art of machine code.

Arduino quickly drew a community of users worldwide who wrote tutorials, shared code, and spread their knowledge. Complex electronics prototypes were no longer the exclusive domain of electrical engineering graduates.

Arduino has made hardware projects featuring complex programmable electronics accessible to anyone—so artists and creative types can concentrate on making their ideas a reality. It's the ultimate tinkering tool; a revolution for hardware designers everywhere.

Should You Buy an Arduino Starter Kit?

We mentioned that you can buy a basic Arduino Uno clone board for as little as $5—but there's not an awful lot you can do with the Arduino by itself. Sure, it has a built-in LED, which can provide literally minutes of entertainment as you make it flash in different ways. But to really make some fun projects, you'll need some extra bits, like sensors, motors, and multicolored LEDs. Then you'll want some jumper cables to connect those bits, and maybe even a breadboard to put all these bits on; see our guide to what a breadboard is and how it works.

That's where an Arduino Starter Kit comes in. But which one to buy? Our current favorite is the Grove Beginner Kit (see our review), which costs less than $50.

It's a clever all-in-one board with pre-wired sensors, LEDs, a buzzer, and even an OLED screen. The board in the middle is Arduino-compatible, but includes 12 Grove connectors. The Grove system makes it easy to connect components through a single cable, without needing to use breadboard or lots of messy jumper cables.

The really remarkable thing about the Grove Beginner Kit is that once you want to move on from the all-in-one board design and start prototyping actual devices, you can snap away the entire board and components, switching to the Grove system cables (or jumper cables into the standard pin holes) instead. It's a highly flexible system to kickstart your Arduino programming experience.

What Language Is Arduino?

The Arduino language is an extension of C/C++. This means Arduino has added a set of functions and features on top of the standard C++ language but still follows the same basic rules and conventions.

You don't need to already know C or C++ to program with Arduino. A little background in any other kind of programming can help, but it isn't essential either. You can get started just by loading simple example programs and try modifying them. Then move on to swapping out for different sensors or other outputs. Finally, try to read and modify more complex programs, and soon you'll be putting together original projects. You could even get ChatGPT to debug or explain the code.

arduino ide screenshot

Here are a few key concepts that define how an Arduino program is written:

  • You must have at least a setup() and loop() function defined.
  • setup() runs once when the Arduino device is reset or turned on for the first time. You'd use this function to create the initial state of variables, tell the Arduino which hardware pins should do what, or start the libraries you need for various sensors.
  • loop() runs continuously. When all the code in the loop() function has been completed, it goes back to the start of loop() and does it again! It's here where your main program code goes; things like checking a sensor variable and acting on it.
  • You can define your own helper functions too, to encapsulate blocks of code. These can accept any number of variables as inputs, and return a variable back. If no variable is returned, the function is marked as void. This is the case with void setup() and void loop().
  • You can import other Arduino libraries to add features to your application or to help when using certain sensors.
  • You can leave comments in your code by prefacing them with a double slash // (even at the end of an existing line of code); or leave a multiline comment by prefacing it with /*, and ending it with */

Get Creating!

Arduino arguably kick-started a revolution in open-source hardware, and its importance to the history of computing cannot be underestimated. It's also just as relevant today as ever.

Getting started with Arduino is easy, and there is a huge range of projects that can be created with it, many of them suitable for beginners.