Table 1. Arduino at a Glance.
Arduino Version
Uno and
Duemilanove
(2009b)
Nano, Mini,
LilyPad, others
Microcontroller
ATmega328
ATmega168
ATmega2560
ATmega168 or
ATmega328
Supports Standard
Expansion Shields
Yes
Yes
No
No
Table 2. Microcontroller
Specifications.
ATmega168 ATmega328 ATmega2560
Flash memory
16 KB; 2 KB
used by
bootloader
32 KB; 0.5 KB
used by
bootloader
SRAM
1 KB
2 KB
8 KB
EEPROM
Clock speed
512 bytes
16 MHz
1 KB
16 MHz
4 KB
16 MHz
speed of motors. Through its I/O pins, the Arduino
supports the basic inter-communications standards: TTL
serial, SPI, 1-Wire, and I2C. Two of its pins (digital I/O lines
2 and 3) support hardware interrupts that via software
trigger on a LOW value, a rising or falling edge, or a
change in value.
Like any microcontroller, the Arduino is basically a small
single-board computer designed to interface to external
Table 3. Arduino Pin Resources.
Arduino Uno, Duemilanove, and Diecimila
14 (of which six provide
PWM output)
6
Digital I/O Pins
Analog Input Pins
Digital I/O Pins
Analog Input Pins
Nano
Digital I/O Pins
Analog Input Pins
Mega 2560
58 SERVO 11.2010
hardware like switches, motors, lights, relays, sensors, and
LEDs. At the heart of the Arduino is an Atmel AVR
microcontroller. The exact version of AVR controller
depends on the version of the Arduino. For example, the
older Diecimila and the first Duemilanove versions used an
AVR ATmega168; the second generation Duemilanove
(referred to as 2009b) as well as the Uno, use the AVR
ATmega328. The ‘328 is physically identical to the ‘168 but
it contains more memory space. See Tables 1 and 2 for
details on variations between the controller chips used.
The bulk of the components on the Arduino are
surface-mount, but on most Arduino boards the AVR
microcontroller is provided in a dual inline pin (DIP)
package. This permits easy replacement should that ever be
needed. A new AVR chip costs maybe $5 or $6; that’s a lot
cheaper than replacing the entire Arduino board.
Keep in mind that the AVR provided in commercially
manufactured Arduino boards comes with a bootloader
program pre-installed in its Flash memory. This bootloader
allows you to program the Arduino by using a USB
connection to your PC. When replacing the AVR
microcontroller of an Arduino, you need to either purchase
a chip with the bootloader software pre-installed, or if you
have the proper hardware setup — like an Atmel STK500
programmer — you can do it yourself. Instructions for
downloading bootloader software into an AVR chip are
provided on the main Arduino information page.
Many Variations on a Theme
The core board designs of the Uno, Duemilanove, and
Diecimila are perhaps the most common and popular of the
Arduinos, but there are numerous other variations. Here are
just some of the standardized Arduino boards you’ll
encounter. The Arduino BT and Fio are intended for wireless
applications. The BT contains a Bluetooth module; the Fio
has a built-in Zigbee radio. (You can also readily add
Bluetooth and Zigbee to an Uno or other core board using
“shields” detailed below.)
The Nano is a compact stick-shaped board made for
breadboard use. It has all the main features of the Uno and
others (including built-in USB jack), but measures only 0.73”
x 1.7”. It uses only surface-mount parts.
The Mini is even smaller, and is ideal for very small bots
with limited space. The Mini lacks its own USB jack, and
requires the use of a USB adapter or serial TTL connection
to the host PC for programming. The Mini has four analog
input pins instead of the six or eight of the other versions.
The Mega2560 is based on a larger AVR chip, and it
offers over three times the number of analog and digital
I/O lines (see Table 3). Memory and program space are
bigger, too. The Arduino Mega2560 contains 256 KB of
Flash (by comparison, the Uno has 32 KB), as well as more
RAM and EEPROM space. Use this for the bigger jobs.
Several Arduino resellers (such as Solarbotics and
Adafruit) offer their own custom offshoots of the Arduino
— these typically go by different names such as Boarduino