Apress Access

Beginning Arduino

By Michael McRoberts

  • eBook Price: $27.99
Buy eBook Buy Print Book
In Beginning Arduino, you will learn all about the popular Arduino microcontroller by working your way through an amazing set of 50 cool projects.

Full Description

  • Add to Wishlist
  • ISBN13: 978-1-4302-3240-7
  • 472 Pages
  • User Level: Beginner to Intermediate
  • Publication Date: December 22, 2010
  • Available eBook Formats: EPUB, MOBI, PDF

Related Titles

  • Go Recipes
  • Building Arduino Projects for  the Internet of Things
  • Beginning FPGA: Programming Metal
  • Junk Box Arduino
  • 3D Printed Science Projects
  • Windows 10 for the Internet of Things
  • Scratch by Example
  • Building a Virtual Assistant for Raspberry Pi
Full Description

In Beginning Arduino, you will learn all about the popular Arduino microcontroller by working your way through an amazing set of 50 cool projects. You'll progress from a complete beginner regarding Arduino programming and electronics knowledge to intermediate skills and the confidence to create your own amazing Arduino projects. Absolutely no experience in programming or electronics required!

Rather than requiring you to wade through pages of theory before you start making things, this book has a hands-on approach. You will dive into making projects right from the start, learning how to use various electronic components and how to program the Arduino to control or communicate with those components.

Each project is designed to build upon the knowledge learned in earlier projects and to further your knowledge in programming as well as skills with electronics. By the end of the book you will be able create your own projects confidently and with creativity.

Please note: the print version of this title is black & white; the eBook is full color. You can download the color diagrams in the book from http://www.apress.com/9781430232407

What you’ll learn

  • Controlling LEDs
  • Displaying text and graphics on LCD displays
  • Making a line-following robot
  • Using touch screens
  • Using digital pressure sensors
  • Reading and writing data to SD cards
  • Connecting your Arduino to the Internet

Who this book is for

Electronics enthusiasts who are new to the Arduino as well as artists and hobbyists who want to learn this very popular platform for physical computing and electronic art.

Table of Contents

Table of Contents

  1. Introduction
  2. Light 'Em Up
  3. LED Effects
  4. Simple Sounders and Sensors
  5. Driving a DC Motor
  6. Binary Counters
  7. LED Displays
  8. Liquid Crystal Displays
  9. Servos
  10. Steppers and Robots
  11. Pressure Sensors
  12. Touch Screens
  13. Temperature Sensors
  14. Ultrasonic Rangefinders
  15. Reading and Writing to an SD Card
  16. Making an RFID Reader
  17. Communicating over Ethernet
Source Code/Downloads

Downloads are available to accompany this book.

Your operating system can likely extract zipped downloads automatically, but you may require software such as WinZip for PC, or StuffIt on a Mac.


If you think that you've found an error in this book, please let us know by emailing to editorial@apress.com . You will find any confirmed erratum below, so you can check if your concern has already been addressed.

On page page 96:
project 14 -light sensor: "you can presume that the LDR has a range of around 10 kohms when in the dark and 1 kohms in bright light."

To match the table 4-1, it should read "100" kohms when dark, and "10" kohms in bright light.

On page all:

I love the book but...... Can you please post real schematics for all the projects? Anyone in electronics has to learn how to read them early on anyway. I really want to buy this book, but just can't without schematics. B&W photos of proto boards with hundreds of wires crossing is really bad form IMHO. Referring to a bunch of color versions in the back of the book is really a deal breaker and in no way makes up for the lack of schematics. I can't believe an editor allowed this. Project 39 & 40 are especially ridiculous. A reader doesn't know what they built or how to possibly troubleshoot it if they have problems.

Thank you for the great book otherwise.

On page p. 105:
In the diagram for project 16, it does not appear that there is a wire connecting the potentiometer to Analog Pin 0 yet in the code potPin is defined as being connected to Analog Pin 0.

On Chapter 9 on servos at the bottom of page 198 in the second if then statement, shouldn't the constrained values for secondVal again be 0 and 180?

On page 23:
This is a suggestion, not an error. The first program in the book makes use of the variable "ledPin".

Since this is a beginners book, and the very first program in the book, eliminate the variable and hard-code the output pin number as illustrated at the end of this message.

I am using this book to teach my 12-year-old nephew programming and he was confused by the variable but readily understood the meaning of the program when the output pin was hard coded.

Then he understood the convenience of using a variable after we had written a few small test programs.

This is a GREAT book though. We really love it. I have been programming for over 20 years and it's the most fun I've had writing code in long time.

// Project 1 - LED Flasher
void setup() {
pinMode(10, OUTPUT);
void loop() {
digitalWrite(10, HIGH);
digitalWrite(10, LOW);

On page 39:
Jumper from pins 8 and 9 need to be reversed in order to have the red ped light when idle as explained.

On page 41:

near the end of project_4
following this line:
digitalWrite(carYellow, LOW); //yellow off
add this missing line:
digitalWrite(pedRed, HIGH); //ped red on


On page 90:

Project 13 has no hardware overview so there's no discussion as to why the LED doesn't have a resistor and why there is a resistor in parallel with the piezo disc.

On page 100:
There' s not enough information on what a Jack Plug is to find one, unless you already know what it is.

I would suggest including part numbers for all parts from some sites where they can be ordered.

On page 112:
First line .......Pin #12 of the chip is CLK not Latch
Second line..........Pin #11 of the chip is latch not CLK.

On page 117:
The scope pattern shows 00110111 rather than the quoted 0011011.

On page 133:

Code for Project 19- page 133: Code row = row <<1; // bitshift left.

Should read row = row >>1; //bitshift right

On page 135:

the light squares in the upper figure in row 5 should be dark colored and the ones below them(row 6) should be the light colored ones. Reference the row "6" in the paragraphs above and below the figure.

On page 173, 183:
There should be a connection between pin 5 (R/W) on the LCD and Ground. lt is mention in table 8-1 but doesn't show on the layout.

On page 177:

The print() command will print whatever is inside the brackets at the current cursor location. The
default cursor location is always column 0 and row 0, which is the top RIGHT corner.

should be top LEFT corner

On page 280:
No output connection is made from the sensor to the Arduino board. Reviewing your code and the LM335 datasheet suggests that a connection between the center pin of the LM335 and the Arduino's Analog In 0 is appropriate (with or without the calibration trim pot).

On page 345:
In project 44 code missing SoftwareSerial library.

On page 361:

For Arduino 1.0
Server server(80);
should be EthernetServer server(80);

Client client = server.available();
should be EthernetClient client =server.available();

client.println("<html><head><META HTTP-EQUIV=""refresh""CONTENT=""5"">\n);
should be
client.println("<html><head><META HTTP-EQUIV=\"refresh\"CONTENT=\"5\">\n);

On page 362:
After the code listing, the text states: "You will need to enter the two address numbers of the temperature sensors See Project 37) in this line:

byte ip[] = {192,168,0,104};

You will also need to change the IP address to one of your own.
I also have found that the code available for download (Thank you very much for that by the way.) has the special character denoting a line continuation in it. I said a few bad words when the compile check failed before I figured out what the problem was. If you add a read me first text file to the download pointing this out it might help.


    1. Unboxing Android USB


      View Book

    2. Beginning AngularJS


      View Book

    3. Beginning Ruby


      View Book

    4. Pro Arduino


      View Book