Follow along with this series!
Joe’s book & kits are available in our
by Joe Pardue
In this and the next few Workshops, we will continue
with the ALP (AVR Learning Platform). We will take a look
at some things that will quickly get us using more of the
components from the Smiley Micros Arduino Projects kit
(available from Nuts & Volts and Smiley Micros).
In Workshop 9, we began using a new development
board — the Arduino Duemilanove — recognizing that
The Arduino Way (TAW) is a very simple and easy way to
begin using microcontrollers. We learned that while TAW
uses a C-like language and has an easy-to-use IDE, it does
■ FIGURE 1. Layout for Cylon Optometry.
not IMHO (In My Humble Opinion) provide a clear path
to learning the C programming language or the details of
the AVR architecture — both of which are our long-term
goals for this Workshop series. To help overcome this, we
learned how to convert TAW code to work with the more
standard (IMHO) Atmel AVR tools: AVRStudio, WinAVR,
and AVRDude using A C Way (ACW). We put together the
ALP that uses the Arduino Projects Kit. This will provide
our hardware development system for many Workshops
This month, we will do another communications
project, learn to read the voltage across a potentiometer,
and then redo the Cylon Optometry code that we first did
for the Butterfly back in Workshop 5 for the ALP.
The ASCIITable Example in
TAW and ACW
You can find the TAW version of the ASCIITable
example in the Arduino IDE under the menu File\
the ACW version, we show TAW code commented out
(marked with // to hide it from the compiler) to make it
easier to compare the TAW and ACW versions. We will
exercise the printf() function and learn that it doesn’t have
a binary formatter, so we do without that for now.
Be sure and review Workshops 9 and 10 on
converting code from TAW to ACW. From those
discussions, you should be able to get AVRStudio to find
libACW001 and compile the following code:
// ASCII Table - ACW
// Joe Pardue April 10, 2009
// This program outputs an ASCII Table to
// a PC Terminal.