If you’re anything like me, tinkering with electronics is something you’d really like to do – in theory at least. In reality, time constraints and lack of knowledge inevitably prevent you from trying.
It’s just too difficult.
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!)
The Arduino is the answer to all that, and frankly anything that can be considered fun while learning is a truly revolutionary device in my opinion.
What Is Arduino?
Arduino is many things: a brand, a piece of hardware, a programming language, and an entire ecosystem of products. But broadly speaking, when we talk about Arduino, we’re referring to an open-source electronics prototyping platform.
But what does that mean?
To you or me, Arduino is a little computer you can program to do things. It can get data from the world by connecting sensors as inputs, and it can interact by adding things like actuators (motors) or LEDs for output.
The Arduino Uno
The most popular Arduino circuit 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 defined by its shape and the location of the input and output pins.
The brain of the Uno model is an ATMega328P or 168 logic chip. This is the thing that stores your program, and runs the code.
On the top of the circuit (that is, with the USB connector on your left), you’ll find 14 digital input/output pins. These can either emit, or read, a digital signal of zero or one (+5V).
In the bottom right, you’ll find five analog input pins. These can reach 1024 different levels of voltage from analog sensors. One example of an analog sensor is a simple light sensor; or light-dependant resistor (LDR). You should check whether your sensor is analog or digital before connecting it.
On the bottom left is a set of power pins. Generally, you’ll be concerned only with the +5V and GND (ground/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 important to power those externally, and not try to pull all the power from your Arduino.
At best you may just burn out the Arduino, which is inexpensive to replace. At worst, if it’s connected over USB, you may damage your computer.
The location of the pins and the shape of the board is important for a few reasons.
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.
Secondly, because Uno is a standard shape, you’ll find a huge range of cases, both ready-made or 3D printable designs to download and print at home, or even modify yourself.
It’s Open-Source Hardware
That means anyone can copy the Arduino, modify it, and resell it as their own. 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 Processing!
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”.
While an official Arduino board can retail at over $20, you’ll find clones with the exact same functionality for less than $5. In fact, if you bought all the components individually, you could even make your own from scratch.
But you should only do that 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.
Some manufacturers create Arduino-compatible boards that are exactly the same, but just cheaper. Some add even 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.
One of our favorite Arduino-compatible boards is the NodeMCU, pictured below. 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.
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?
Programmable Logic Controllers are not a new concept; they were around long before Arduino.
But Arduino made it easy. It combined an easy-to-use piece of hardware—much like electronics kits we grew up with—and an accessible high-level programming environment. Arduino became a community of users around the world 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!
Should You Buy an Arduino Starter Kit?
There’s not an awful lot you can do with the Arduino by itself. Sure, it has a built-in LED, which you can provide 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, multicolored LEDs. Then you’ll want some cables to connect those bits, and maybe even a breadboard.
That’s where an Arduino Starter Kit comes in. But which one to buy? My current favorite is the Grove Beginner Kit.
It’s a clever all-on-in 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 simply cut the entire board and components away, switching to the Grove system cables (or jumper cables into the standard pin holes). It’s an extremely flexible system to kickstart your Arduino programming experience.
What Language Is Arduino?
Technically, Arduino 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; I didn’t, when I started. A little background in any other kind of programming can certainly 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 your own original projects.
But don’t worry: there are thousands of project tutorials and sample code out there, free to download and use. And if you get stuck, there’s a huge community waiting to help. As with anything, please ensured you’ve Googled it first; someone has probably had the exact same problem as you already!
Here are a few characteristics that define an Arduino program:
- 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 check a sensor variable and act 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 has completely changed the hobby electronics game. What wasn’t possible without extensive knowledge in the past, can now be achieved by anyone—thanks to the wide range of cheap micro-controllers available, and the huge community surrounding it.
Getting started is pretty easy too, and we have a handy beginner’s guide to get you off the ground. Or, check out our Arduino beginner’s project: Traffic light control tutorial.
About The Author