Arduino is an open-source electronics platform. Arduino has a microcontroller and an IDE (Integrated Development Environment) that runs on your computer to write and upload computer code to the board.
The Arduino platform is popular with electronics beginners for good reason. Unlike most other programmable circuit boards, the Arduino can load new code using a USB cable and no programmer. The Arduino IDE also simplifies C++, making programming easier. Finally, Arduino offers a standard form factor that simplifies microcontroller functions.
Table of Contents
The Arduino Uno
One of the most popular Arduino boards, the Uno is ideal for beginners. We’ll discuss its contents and capabilities later in the tutorial.
You only need 10 lines of code to blink your Arduino’s LED. The code may not make sense now, but this tutorial and our many other Arduino tutorials will get you up to speed quickly!
Expect to Learn
- The following will be covered in this tutorial:
- What Arduino projects are possible?
- Typical Arduino board contents and purpose
- The Arduino board varieties
- Some useful Arduino widgets
Arduino is a great tool for all skill levels. If you understand basic electronics, learning with your Arduino will be more fun. Before diving into Arduino, you should have a good understanding of these concepts.
Ohm’s Law, Voltage, Current, Resistance
A circuit is what?
- Levels of Logic
- Logic Digital
- Comparing analog and digital
Want the right Arduino?
See our Arduino Comparison Guide! We’ve compiled all our Arduino development boards so you can quickly compare them to find the right one.
It does what?
Arduino hardware and software are for artists, designers, hobbyists, hackers, newbies, and anyone interested in interactive objects or environments. Arduino can control buttons, LEDs, motors, speakers, GPS, cameras, the internet, and even your phone or TV! This flexibility, combined with the fact that Arduino software is free, hardware boards are cheap, and both software and hardware are easy to learn, has led to a large community of users who have contributed code and created instructions for many Arduino-based projects.
Arduino can control almost any electronics project, from robots and a heating pad hand warming blanket to honest fortune-tellers and a Dungeons and Dragons dice-throwing gauntlet.
Wear your geek cred on your arm.
This is just the tip of the iceberg—if you want to see more Arduino projects, here are some good resources to inspire you:
ITP Physical Computing Wiki
Learn.sparkfun.com has many more Arduino tutorials.
On the board?
Arduino boards (explained next page) come in many varieties for different uses. Some Arduino boards look different, but most have these components:
Power (USB/Barrel Jack)
Every Arduino board needs power. A barrel-jacked wall power supply or a USB cable from your computer can power the Arduino UNO. In the image above, USB (1) and barrel jack (2) are labeled.
You load code onto your Arduino board via USB. Arduino programming is covered in our Installing and Programming Arduino tutorial.
Overpowering your Arduino with a power supply above 20 Volts will destroy it. Arduino models typically require 6–12 volts.
Pins (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
The pins on your Arduino are the places where you connect wires to construct a circuit (probably in conjuction with a breadboard and some wire. They usually have black plastic ‘headers’ that allow you to just plug a wire right into the board. The Arduino has several different kinds of pins, each of which is labeled on the board and used for different functions.
GND (3): Short for ‘Ground’. There are several GND pins on the Arduino, any of which can be used to ground your circuit.
5V (4) & 3.3V (5): As you might guess, the 5V pin supplies 5 volts of power, and the 3.3V pin supplies 3.3 volts of power. Most of the simple components used with the Arduino run happily off of 5 or 3.3 volts.
Analog (6): The area of pins under the ‘Analog In’ label (A0 through A5 on the UNO) are Analog In pins. These pins can read the signal from an analog sensor (like a temperature sensor) and convert it into a digital value that we can read.
Digital (7): Across from the analog pins are the digital pins (0 through 13 on the UNO). These pins can be used for both digital input (like telling if a button is pushed) and digital output (like powering an LED).
PWM (8): You may have noticed the tilde (~) next to some of the digital pins (3, 5, 6, 9, 10, and 11 on the UNO). These pins act as normal digital pins, but can also be used for something called Pulse-Width Modulation (PWM). We have a tutorial on PWM, but for now, think of these pins as being able to simulate analog output (like fading an LED in and out).
AREF (9). Analog Reference. Leave this pin alone most of the time. Sometimes an external reference voltage (between 0 and 5 Volts) is set as the analog input pins’ upper limit.
Arduino has a reset button like the original Nintendo. Pushing it temporarily connects the reset pin to ground and restarts Arduino code. If your code doesn’t repeat, this can help you test it multiple times. Unlike the original Nintendo however, blowing on the Arduino doesn’t usually fix any problems.
Power LED Indicator
Just beneath and to the right of the word “UNO” on your circuit board, there’s a tiny LED next to the word ‘ON’ (11). This LED should light up whenever you plug your Arduino into a power source. If this light doesn’t turn on, there’s a good chance something is wrong. Time to re-check your circuit!
TX RX LEDs
TX is short for transmit, RX is short for receive. These markings appear quite a bit in electronics to indicate the pins responsible for serial communication. In our case, there are two places on the Arduino UNO where TX and RX appear — once by digital pins 0 and 1, and a second time next to the TX and RX indicator LEDs (12). These LEDs will give us some nice visual indications whenever our Arduino is receiving or transmitting data (like when we’re loading a new program onto the board).
The black thing with all the metal legs is an IC, or Integrated Circuit (13). Think of it as the brains of our Arduino. The main IC on the Arduino is slightly different from board type to board type, but is usually from the ATmega line of IC’s from the ATMEL company. This can be important, as you may need to know the IC type (along with your board type) before loading up a new program from the Arduino software. This information can usually be found in writing on the top side of the IC. If you want to know more about the difference between various IC’s, reading the datasheets is often a good idea.
The voltage regulator (14) is not actually something you can (or should) interact with on the Arduino. But it is potentially useful to know that it is there and what it’s for. The voltage regulator does exactly what it says — it controls the amount of voltage that is let into the Arduino board. Think of it as a kind of gatekeeper; it will turn away an extra voltage that might harm the circuit. Of course, it has its limits, so don’t hook up your Arduino to anything greater than 20 volts.
The Arduino Family
Arduino makes several different boards, each with different capabilities. In addition, part of being open source hardware means that others can modify and produce derivatives of Arduino boards that provide even more form factors and functionality. If you’re not sure which one is right for your project, check this guide for some helpful hints. Here are a few options that are well-suited to someone new to the world of Arduino:
Arduino Uno (R3)
The Uno is a great choice for your first Arduino. It’s got everything you need to get started, and nothing you don’t. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a USB connection, a power jack, a reset button and more. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with an AC-to-DC adapter or battery to get started.
This is LilyPad Arduino main board! LilyPad is a wearable e-textile technology developed by Leah Buechley and cooperatively designed by Leah and SparkFun. Each LilyPad was creatively designed with large connecting pads and a flat back to allow them to be sewn into clothing with conductive thread. The LilyPad also has its own family of input, output, power, and sensor boards that are also built specifically for e-textiles. They’re even washable!
At Spark Fun we use many Arduinos and we’re always looking for the simplest, most stable one. Each board is a bit different and no one board has everything we want — so we decided to make our own version that combines all our favorite features.
The Red Board can be programmed over a USB Mini-B cable using the Arduino IDE. It’ll work on Windows 8 without having to change your security settings (we used signed drivers, unlike the UNO). It’s more stable due to the USB/FTDI chip we used, plus it’s completely flat on the back, making it easier to embed in your projects. Just plug in the board, select “Arduino UNO” from the board menu and you’re ready to upload code. You can power the Red Board over USB or through the barrel jack. The on-board power regulator can handle anything from 7 to 15VDC.
Arduino Mega (R3)
The Arduino Mega is like the UNO’s big brother. It has lots (54!) of digital input/output pins (14 can be used as PWM outputs), 16 analog inputs, a USB connection, a power jack, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with an AC-to-DC adapter or battery to get started. The large number of pins make this board very handy for projects that require a bunch of digital inputs or outputs (like lots of LEDs or buttons).
The Arduino Leonardo
The Leonardo is Arduino’s first development board to use one microcontroller with built-in USB. This means that it can be cheaper and simpler. Also, because the board is handling USB directly, code libraries are available which allow the board to emulate a computer keyboard, mouse, and more!
The Extended Family
While your Arduino board sure is pretty, it can’t do a whole lot on its own — you’ve got to hook it up to something. There are lots of tutorials here on learn as well as the links back in the ‘What does it do’ section, but rarely do we talk about the general kinds of things you can easily hook into. In this section we’ll introduce basic sensors as well as Arduino shields, two of the most handy tools to use in bringing your projects to life.
With some simple code, the Arduino can control and interact with a wide variety of sensors – things that can measure light, temperature, degree of flex, pressure, proximity, acceleration, carbon monoxide, radioactivity, humidity, barometric pressure, you name it, you can sense it!
Just a few of the sensors that are easily compatible with Arduino
Additionally, there are these things called shields — basically they are pre-built circuit boards that fit on top of your Arduino and provide additional capabilities — controlling motors, connecting to the internet, providing cellular or other wireless communication, controlling an LCD screen, and much more.
A partial selection of available shields to extend the power of your Arduino
Shield Stravaganza!!! (A series of videos briefly explaining all of the shields we have at SparkFun) Part 1, Part 2, and Part 3
Resources and Going Further
Now that you know all about the Arduino family, which board you might want to use for your project, and that there are tons of sensors and shields to help take your projects to the next level. Here are some further readings that may help you along in learning more about the world of electronics.
Arduino IDE, Microcontroller programming, Embedded systems, Arduino projects, Coding for Arduino, Arduino libraries, Arduino software, Hardware programming, Arduino development, Open-source electronics, Arduino coding, Electronics prototyping, Arduino tutorials, IoT programming, Arduino sensors, Circuit design, Arduino boards, Arduino robotics, Arduino C/C++, DIY electronics, Arduino shields, Microcontroller projects, Arduino firmware, IoT development, Arduino code optimization