The Arduino is a cheap, flexible, open source microcontroller platform designed to make it easy for hobbyists to use electronics in homemade projects. With an almost unlimited range of input and output add-ons, sensors, indicators, displays, motors, and more, the Arduino offers you countless ways to create devices that interact with the world around you.

In Arduino Workshop, you'll learn how these add-ons work and how to integrate them into your own projects. You'll start off with an overview of the Arduino system but quickly move on to coverage of various electronic components and concepts. Hands-on projects throughout the book reinforce what you've learned and show you how to apply that knowledge. As your understanding grows, the projects increase in complexity and sophistication.

Among the book's 65 projects are useful devices like:

A digital thermometer that charts temperature changes on an LCD

A GPS logger that records data from your travels, which can be displayed on Google Maps

A handy tester that lets you check the voltage of any single-cell battery

A keypad-controlled lock that requires a secret code to open

You'll also learn to build Arduino toys and games like:

An electronic version of the classic six-sided die

A binary quiz game that challenges your number conversion skills

A motorized remote control tank with collision detection to keep it from crashing

Arduino Workshop will teach you the tricks and design principles of a master craftsman. Whatever your skill level, you'll have fun as you learn to harness the power of the Arduino for your own DIY projects.

Uses the Arduino Uno board

Author Bio

John Boxall has been writing Arduino tutorials, projects, and kit and accessory reviews for several years at www.tronixstuff.com. Arduino Workshop is his first book.

"When it comes to technology, there's really something to be said for learning by example, and with each key point focused around a specific project, the information in this book is easy to learn and retain."
—Dave Rankin, About.com Open Source (Read More)

"Arduino Workshop was the first book I’ve read that helped me really make sense of the practical applications the Arduino is capable of."
—AmateurRadio.com (Read More)

"A very thorough primer for those wishing to jump on the [Arduino] bandwagon."
—Kevin Wierzbicki, Campus Circle (Read More)

"I’ve checked out several Arduino “primers,” and found the best one for my purposes to be Arduino Workshop: A Hands-On Introduction with 65 Projects by John Boxall."
—Jeff Rowe, MCADCafe.com Blog (Read More)

Page 13:
The first sentence on the page should read, "Copy the folder named arduino-1.0.5-windows (or something similar)..."

Page 27:
The first sentence on the page should read, "At the bottom right of the message area, you should see the name of your Arduino board type as well as its connected USB port- Arduino Uno on COM4 in this case."

Page 67:
The text for section 3 should read, “Connect one wire from the Arduino 5 V pin to the leftmost vertical column on the breadboard, and connect another wire from the Arduino GND pin to the vertical row to the right of the 5 V column, and another horizontal wire between the vertical GND column and the bottom-left pin of the button, as shown in Figure 4-22.”

Page 75:
In Figure 4-26, there should be a ground connection on the line that connects R7 with R8. Please see the following image for the correct figure:

Page 76:
In the sketch for Project 5, the first line of code which reads "#define westButton 7" should instead read "#define westButton 3".

Page 85:
In the formula in the middle of the page, "R3" should instead read "R2".

Page 87:
At the bottom of the page, the text that reads "When alternating current is applied..." should instead read “When a pulsed current is applied..."

Page 121:
In the block of code at the top of the page, the line which reads "shiftOut(DATA, CLOCK, MSBFIRST, a);" should instead read "shiftOut(DATA, CLOCK, MSBFIRST, i);"

Page 133:
The bolded segment in the following text should be added to the sketch for program 19:
// Project 19 - Controlling Two Seven-Segment LED Display Modules
// set up the array with the segments for 0 to 9, A to F (from Table 6-2)

In the last line of the code of the sketch for Project 25, "lcd.write(0);" should instead read "lcd.write(byte(0));"

Page 192:
The first line of code on the page which reads "if (attempt[q]==PIN[q])" should instead read "if (attempt[i]==PIN[i])"

Page 210:
The heading that reads "Atmel ATmega328-PU Microcontroller IC" should instead read “Atmel ATmega328P-PU Microcontroller IC". The same change can be made for every instance of "ATmega328” or "ATmega328P” in this project, which should instead read "ATmega328P-PU".