Using Arduino

This page provides links to class notes and on line instructions for the Arduino microcontroller platform.

All students in EAS 199A are required to purchase their own Arduino board, which is part of the Sparkfun Inventor's kit. The kit is available from the Textbook Information Desk at the PSU Bookstore.

See below for advice on avoiding pin 0 and pin 1 for digital I/O.

Arduino Home

From the Arduino home page:

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
Photo of an Arduino

On the Arduino web site you will find

The getting started guide has detailed pages on installing the Arduino IDE:

Manual for the Sparkfun Inventor's Kit

The manual for the inventor's kit can be downloaded in low resolution (1 MByte) or high resolution (8 MByte) format. The manual provides an overview of the hardware and software necessary to program an Arduino, and it includes twelve tutorial lessons on building circuits that are controlled by Arduino programs.

Adafruit Tutorials

Adafruit Industries designs and sells electronics kits and components. Limor Fried, the founder of Adafruit, has written an excellent set of tutorials on learning arduino. If you were going to start with one tutorial, start there.

John Boxall's Getting Started with Arduino

John Boxall has an extensive set of tutorials called Getting Started with Arduino

Books on Arduino

Do not use digital Pin 0 or Pin 1 unless you really need to

There is a subtle problem caused by connecting a wire to either digital pin 0 or digital pin 1 if you are also trying to communicate with the Arduino via the USB cable. Pin 0 and pin 1 are used for serial communication in addition to the USB connector on the board. The details are in the Arudino Reference Manual

The use of pin 0 and pin 1 as serial communication lines can lead to confusing behavior that may cause you to jump to the conclusion that your board is fried.

Here is the scenario.

Suppose you write a program and build a corresponding circuit that uses pin 0 or pin 1. The first time you download the program via the USB cable, everything works (assuming, of course that both your program and circuit are correct). Next you make some changes to the code and try to download the update. The IDE gives you an error (need actual error message here) that has nothing to do with the change in code or with the health of your board. The first program is running, and because there is a non-floating voltage on pin 0 or pin 1, the Arduino is thinking someone is sending it data (or waiting for data) over the serial line. Therefore, the Arduino blocks additional communication.

The solution is either (1) power cycle the Arduino or (2) temporarily disconnect the wires from pin 0 and pin 1 and download the program.

So ... it's a good idea to avoid using pin 0 and pin 1 unless you need to.