Arduino Development Cookbook

4.8 (8 reviews total)
By Cornel Amariei
  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Power on – Arduino Basics

About this book

The single-chip computer board Arduino is small in size but vast in scope, capable of being used for electronic projects from robotics through to home automation. The most popular embedded platform in the world, Arduino users range from school children to industry experts, all incorporating it into their designs.

Arduino Development Cookbook comprises clear and step-by-step recipes that give you the toolbox of techniques to construct any Arduino project, from the simple to the advanced. Each chapter gives you more essential building blocks for Arduino development, from learning about programming buttons through to operating motors, managing sensors, and controlling displays. Throughout, you'll find tips and tricks to help you troubleshoot your development problems and push your Arduino project to the next level!

Publication date:
April 2015
Publisher
Packt
Pages
246
ISBN
9781783982943

 

Chapter 1. Power on – Arduino Basics

In this chapter, we will cover the following recipes:

  • Downloading the Arduino software

  • Connecting Arduino

  • Uploading code to Arduino

  • Learning Arduino code basics

  • Code basics: Arduino C

  • Code basics: Arduino Pins

 

Introduction


When we have an idea, we take a pen and we sketch it down on a piece of paper. Imagine if we could build things that interact with the environment just as easily. This is where the Arduino platform comes into play.

Arduino is an open source family of electronic microprocessor boards that we can easily program to understand and interact with the environment. Over the years, Arduino has become the standard for building electronics projects. Arduino has been sent into space to run micro satellites; it has been sent to the bottom of the ocean to control small robotic submersibles; and now, Arduino has arrived for you. Let's explore the limitless world of Arduino.

If you want to go through the basics of electronics before starting with the book, you can refer to the Appendix, Electronics – the Basics.

 

Downloading the Arduino software


The first thing we need is the Arduino Integrated Development Environment (IDE). One of the best parts about Arduino is that the software in which we need to program the boards is free and open source. The Arduino IDE is compatible with Windows, Mac OS X, and Linux.

Getting ready

We only need one thing to complete this recipe—a computer connected to the Internet.

How to do it…

Follow these simple steps:

  1. Visit the Arduino website at http://arduino.cc/.

  2. In the main menu, go to the Download section.

  3. Select your operating system and download the latest stable release of the Arduino software. At the time of writing, the latest stable version compatible with all standard boards was version 1.0.5.

  4. After it downloads, install the Arduino software.

There's more

Now that we have the Arduino IDE installed, let's familiarize ourselves with the user interface.

Here is a screenshot of the Arduino software running on Windows. It looks the same on Mac and Linux, since it's all written in Java.

First, we will discuss the Tool Bar. In the Tool Bar, we can find the most used buttons:

Button

Description

The Verify button compiles the code and checks it for errors.

The Upload button compiles the code and, if there is no error in the code, uploads it to the Arduino board.

The New button starts a new program. In the Arduino world, programs are called sketches.

The Open button simply allows us to open a saved sketch.

The Save button saves the current sketch.

This button opens the Serial Monitor window that allows us to communicate with the Arduino board. It is extremely helpful when we debug a program. More information can be found in the Serial output recipe in Chapter 7, Digital Communication with Arduino

In the Sketch tab, we can see all the opened Arduino Sketches. This comes handy when we want to work on multiple programs at the same time.

The Code Space area is where all the magic happens. That's where we write the code that powers satellites and cat food dispensers. It's a code editor with automatic syntax highlighting and autoarranging.

The Status Display area indicates all the bad stuff. Whenever there are errors in the code, they will be displayed there. It also displays errors in the connection with the board. The only good thing it can display is that the code has been successfully uploaded to the Arduino board.

Additional functionality can be found in the main menu bar. Here, we have the classic File menu where we have Save, Open, Close, and also some examples. In the following recipes, more will be discussed about the menu bar components. A nice trick worth sharing is in the Tools menu—the Auto Format tool will format the code to look professional and clean.

See also

Consider the following recipes to better understand how to use the Arduino software environment:

  • The Connecting Arduino recipe

  • The Uploading code to Arduino recipe

 

Connecting Arduino


Before we can start writing code and making things move, we first need to connect the Arduino board to our computer. The Arduino board is compatible with Mac, Windows, and Linux. Here we will discuss how to connect and install the drivers.

Getting ready

The following are the ingredients required for this recipe:

  • An Arduino board connected to the computer via USB

  • The Arduino IDE downloaded and installed

How to do it…

This recipe is split in two, as the steps for Mac and Windows are slightly different.

Mac OS X

Follow these steps to connect Arduino to Mac OS X:

  1. Connect the Arduino to the computer using a USB cable. If everything is properly connected, the green light will turn and stay on.

  2. If you have an Arduino Uno, Leonardo, Due, or Mega 2560, no drivers are needed and the board is ready to go.

  3. If you're using an older Arduino board such as the Duemilanove, Diecimila, or Pro Mini, you will require FTDI drivers. To obtain them, you can visit http://www.ftdichip.com/Drivers/VCP.htm and download the latest. After downloading them, click on the installer and follow the instructions. Finally, reboot the computer and the Arduino board will be installed.

Windows

The following steps are required for the Uno, Mega 2560, Leonardo, and Due boards when connecting Arduino to Windows:

  1. Connect the Arduino to the computer using a USB cable. If everything is properly connected, the green light will turn on and stay on.

  2. Windows will begin its driver installation process and fail. Click the Start button and open the Control Panel. There, navigate to System and then Device Manager.

  3. In the Device Manager window, search for Ports (COM & LPT) and look for a port with a name similar to your board. For the Arduino Uno, the port should be named Arduino UNO…. If there is no such title under Ports, look in Other Devices for an Unknown Device. That will be your Arduino board.

  4. Right-click on the Arduino Board in Device Manager and choose Update Driver Software. Next, select Browse my computer for driver software.

  5. This will require the path to the Arduino driver. This can be found in the Arduino installation folder in Program Files, in the drivers folder. It is named Arduino.inf. Select the file and Windows will finish installing the driver.

These are the steps for the older FTDI-based Duemilanove, Diecimila, Nano, and Mega boards:

  1. Connect the Arduino to the computer using a USB cable. The green light will turn on if everything is connected properly.

  2. In Windows Vista and higher, the drivers will install automatically and the board will be ready for use.

  3. If the driver installation fails, navigate to Device Manager in a similar fashion as for the newer boards and, under Ports (COM & LPT), search for a USB Serial Converter or similar. Choose Update Driver Software, select Browse my computer for driver software, and then select the FTDI driver folder from the Arduino installation folder, in the drivers folder. After selection, click on Next and Windows will finish installing the Arduino board.

See also

The procedure for an Ubuntu Linux computer is at http://playground.arduino.cc/Linux/Ubuntu.

 

Uploading code to Arduino


It's time to power on the Arduino board and make it do something. In this recipe, we will connect the Arduino to the computer and upload an example sketch from the Arduino IDE.

Getting ready

To execute this recipe, the following are the components required:

  • A computer with the Arduino IDE installed

  • An Arduino board connected to the computer via USB

How to do it…

Follow these steps:

  1. Connect the Arduino to the computer using a USB cable. If everything is properly connected, the green LED light will turn on.

  2. If this is the first time the Arduino has been connected to the computer, driver installation might be required. Please follow the Connecting Arduino recipe to properly set up the Arduino board.

  3. Start the Arduino IDE and, in the Menu Bar, go to File | Examples | 01. Basics and click on the Blink example. This will load the Blink sketch.

  4. Make sure your Arduino board is selected in the Board menu. The menu can be found in the Menu bar in Tools | Board.

  5. We need to check whether the correct serial port is selected. Under Tools | Serial Port, we can see all available serial port devices connected to the computer. On Windows, each port will be labeled as COM followed by a number. Usually, Arduino installs on COM3, but not always. A fast way to check which serial port the Arduino is connected to is to unplug the cable and see which COM port disappears in the menu. That will be our Arduino board. In the Mac, the port should be called something beginning with /dev/tty.usbmodem or /dev/tty.usbserial.

  6. Click on the Upload button on the Tool Bar. If everything runs properly, the TX RX LEDs on the Arduino board will begin blinking for a short time until the upload is done. After this, one LED light on the Arduino Board should slowly blink.

How it works…

When we upload a sketch to the board, the Arduino software first compiles the code. If there is an error in the code, it will write it in the Status Display area and will stop the upload. If no errors are found, it will begin writing the compiled code to the board. Errors will appear if the board or serial port is not properly selected. When everything is correctly set up, the TX RX LEDs will blink, meaning data is being transferred between the computer and the Arduino board. When the transfer is done, the board will reset and the code will immediately begin executing.

The code is stored in the Arduino board until it is erased or replaced by another code. We can take the board and plug it into a battery or to another computer, and it will still execute this blinking.

 

Learning Arduino code basics


Here we begin with the basics of coding for Arduino. Writing code for Arduino and other embedded platforms is a little different from writing code for a computer. But don't fear—the differences are small.

Getting ready

To execute this recipe, we need just one ingredient: the Arduino IDE running on a computer.

How to do it…

These are the two mandatory functions in the Arduino coding environment:

void setup() {
  // Only execute once when the Arduino boots
}


void loop(){
  // Code executes top-down and repeats continuously
}

How it works…

Each Arduino sketch has two mandatory functions: the setup() function and the loop() function. The setup() function only executes once: either when we apply power to the Arduino or when it resets. Usually, we use this function to configure the pins of the Arduino, to start communication protocols, such as serial communication, or to perform actions we only want to perform once when the Arduino boots.

The loop() function executes continuously. Code in this function is executed top-down; when it reaches the end of the function, it jumps back to the start and runs again. This happens forever until the Arduino is switched off. In here, we write the code we want to run continuously.

See also

Continue the Arduino code basics with the following recipe, Code basics: Arduino C.

 

Code basics – Arduino C


The Arduino uses a slightly reduced C/C++ programming language. In this recipe, we will remember a few basics of C/C++.

Getting ready

Ensure that you have the Arduino IDE running on a computer.

How to do it…

Here is a simple example of basic Arduino C/C++ manipulating two variables:

// Global Variables
int var1 = 10;
int var2 = 20;

void setup() {
  // Only execute once when the Arduino boots
  var2 = 5; // var2 becomes 5 once the Arduino boots
}


void loop(){
  // Code executes top-down and repeats continuously
  if (var1 > var2){ // If var1 is greater than var2
    var2++; // Increment var2 by 1
  } else { // If var1 is NOT greater than var2
    var2 = 0; // var2 becomes 0
  }
}

How it works…

The code plays with two integer variables. Here we have a code breakdown to better explain each step.

First, we declared two global variables—var1 and var2—and we set them to the values of 10 and 20 respectively.

// Global Variables
int var1 = 10;
int var2 = 20;

When the Arduino boots, it first allocates the global variables into memory. In the setup() function, we change the value of var2 to 5:

void setup() {
  // Only execute once when the Arduino boots
  var2 = 5; // var2 becomes 5 once the Arduino boots
}

After the Arduino allocates the global variables, it executes the code inside the setup() function once. Following this, the loop() function will execute repeatedly. Inside, we have an if condition that will play with the values of var2. If var1 is greater than var2, we increase var2 by one. Eventually, var1 will not be greater than var2, and then we set var2 to 0. This will result in an infinite adding and equaling of var2.

This is one example on how the Arduino executes the code in its two main functions.

See also

Continue the Arduino code basics with the following recipe, Code basics – Arduino pins.

 

Code basics – Arduino pins


The most important feature of the Arduino is its control over digital input/output (I/O) pins. On each pin, we can set a voltage value of 5 V, representing logic HIGH, or 0 V, representing logic LOW. Also, we can read whether a value of 5 V or 0 V is applied externally. Here we will learn how.

Getting ready

For this recipe, ensure that you have the Arduino IDE running on a computer.

How to do it…

The following code turns a pin HIGH and LOW repeatedly while reading the external voltage applied to another:

void setup() {
  // Set pin 2 as a digital Output
  pinMode(2, OUTPUT);
  // Set pin 3 as a digital Input
  pinMode(3, INPUT);
}

void loop(){
    // Set pin 2 HIGH
  digitalWrite(2, HIGH);
  // Wait 100 milliseconds
  delay(100);
  // Set pin 2 LOW
  digitalWrite(2, LOW);
  // Wait 100 milliseconds
  delay(100);
    // Read the value of pin 3 and store it in a variable
  int pinValue = digitalRead(3);
}

How it works…

The code sets two pins in output and input mode and then writes and reads from them. Here is the code breakdown:

In setup(), we use the pinMode() function to set pin number 2 as an output. When we set a pin as an output, we can set that pin as either HIGH (5 V) or LOW (0 V). Also, we set pin number 3 as an input. A pin configured as input can read external voltages applied to it. It can read HIGH if the voltage is around 5 V and LOW if the voltage is close or equal to 0 V:

void setup() {
  // Set pin 2 as a digital Output
  pinMode(2, OUTPUT);
  // Set pin 3 as a digital Input
  pinMode(3, INPUT);
}

In the loop() function, we use the digitalWrite() function to set pin number 2 to HIGH. Then, we wait for 100 milliseconds using the delay() function. This function stops the execution of the code for the specified time, in milliseconds. Thereafter, we set the pin to LOW and wait another 100 milliseconds. In the end, we read the value of pin 3 in a variable:

void loop(){
  
  // Set pin 2 HIGH
  digitalWrite(2, HIGH);
  // Wait 100 milliseconds
  delay(100);
  // Set pin 2 LOW
  digitalWrite(2, LOW);
  // Wait 100 milliseconds
  delay(100);
  
  // Read the value of pin 3 and store it in a variable
  int pinValue = digitalRead(3);
}

Tip

Downloading the example code

You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

About the Author

  • Cornel Amariei

    Cornel Amariei is a Romanian inventor and entrepreneur in the fields of Robotics and 3D printing. He has been working with the Arduino platform since its early days in 2007. His past experience involves large cargo gamma ray scanning robotics, ATM security systems, and blind assisting devices. In his spare time, he is a performing musician playing multiple instruments—predominately the guitar. He is also a swimmer, water polo player, and photographer.

    Over the years, he has built hundreds of Arduino projects, ranging from flying Quadcopters to levitating magnets and underwater robots. Currently, he splits his time between doing his undergraduate studies in electric engineering and computer science at Jacobs University in Bremen, Germany, and his start-ups and research and development job.

    Browse publications by this author

Latest Reviews

(8 reviews total)
detailed and simple explanations
Excelente livro, completo e de fácil entendimento
good product and good quality