Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Arduino Development Cookbook
Arduino Development Cookbook

Arduino Development Cookbook: Over 50 hands-on recipes to quickly build and understand Arduino projects, from the simplest to the most extraordinary

By Cornel M Amariei
$48.99
Book Apr 2015 246 pages 1st Edition
eBook
$39.99 $27.98
Print
$48.99
Subscription
$15.99 Monthly
eBook
$39.99 $27.98
Print
$48.99
Subscription
$15.99 Monthly

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Black & white paperback book shipped to your address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Apr 23, 2015
Length 246 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781783982943
Vendor :
Arduino
Category :
Concepts :
Table of content icon View table of contents Preview book icon Preview Book

Arduino Development Cookbook

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.

Left arrow icon Right arrow icon

Key benefits

What you will learn

Read data from sensors and take action based on the environment Use the Arduino to turn on lights, write to screens, or play light shows Manipulate motors and other actuators to control the movement of different objects Set up electronic circuits on a breadboard to interact with the Arduino Explore hacks to push your project to the next level Make your projects wireless and make them communicate with the computer

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Black & white paperback book shipped to your address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Apr 23, 2015
Length 246 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781783982943
Vendor :
Arduino
Category :
Concepts :

Table of Contents

16 Chapters
Arduino Development Cookbook Chevron down icon Chevron up icon
Credits Chevron down icon Chevron up icon
About the Author Chevron down icon Chevron up icon
About the Reviewers Chevron down icon Chevron up icon
www.PacktPub.com Chevron down icon Chevron up icon
Preface Chevron down icon Chevron up icon
Power on – Arduino Basics Chevron down icon Chevron up icon
Blinking LEDs Chevron down icon Chevron up icon
Working with Buttons Chevron down icon Chevron up icon
Sensors Chevron down icon Chevron up icon
Motor Control Chevron down icon Chevron up icon
More Output Devices Chevron down icon Chevron up icon
Digital Communication with Arduino Chevron down icon Chevron up icon
Hacking Chevron down icon Chevron up icon
Electronics – the Basics Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Filter icon Filter
Top Reviews
Rating distribution
Empty star icon Empty star icon Empty star icon Empty star icon Empty star icon 0
(0 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 0%

Filter reviews by


No reviews found
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela