The Arduino project has produced a range of low cost open source computers based mostly around Atmel processors, plus an open source Integrated Development Environment (IDE) and programming language based on C/C++.
The Arduino Uno is perhaps the most widely known processor board in the range, offering a lost cost entry point into microcontroller programming, and supported by a huge range of add-on peripherals.
For more demanding applications the newly introduced Arduino Due offers additional input/output ports, more memory and enhanced processing capabilities, being based on a 32-bit ARM Cortex-M3 RISC processor. The Arduino Due has a similar footprint to the well established Arduino Mega 2560 (an updated version of the Arduino Mega), but has a generally higher specification. However the Due operates internally at 3.3 V, rather than the usual 5V as with other Arduino boards, making it incompatible with some existing add-ons.
The following table summarises the main features of the Arduino Uno, Due, and Mega 2560 processor boards
|Arduino Uno (web)||Arduino Due (web)||Arduino Mega 2560 (web)|
|CPU||ATmega328 (data)||ATSAM3X8E (data)||ATmega2560 (data)|
|Clock||16 MHz||84 MHz||16 MHz|
|Flash||32 KB1 (KiB)||512 KB||256 KB|
|SRAM||2 KB||96 KB||8 KB|
|EEPROM||1 KB||4 KB|
|Operating Voltage||5 V||3.3 V||5 V|
The Arduino Hardware page gives details of all officially produced Arduino circuit boards.
Programs are written on a development system PC using the Arduino IDE and are downloaded to the Arduino processor board using a USB connection, with the aid of a small boot loader program stored in the microcontroller's memory.
The Arduino IDE is written in Java, and is based on the IDE used in the Processing programming language, although the Arduino programming language is itself based on a simplified set of C/C++ libraries developed in the Wiring project. The overall aim is to simplify the software development process, making it more accessible to a wider range of less technically minded people, including students, hobbyists and even artists. Perhaps, with the latter group in mind, Arduino programs are often called sketches.
A wide range of example programs are available from the File > Examples section of the IDE pull-down menu, and browsing through these applications is a great way to learn the capabilities of the hardware and software. One of the most basic programs is the Blink application, which as its name suggests, blinks a single LED at 1 second intervals.
Arduino Website Resources
Whether you are just getting started with Arduino software development, or an experienced programmer, then the Arduino website is a great source of information. Useful resources include:
A wide variety of add-on interfacing boards are available and these are fitted on top of the main processor board using plug-in header connectors. These daughter boards are commonly called shields, presumably based on a superficial resemblance of the assembly to a knight holding a shield.
1 The commonly used definition of 1 KB = 1,024 bytes is used here, to match with associated manufacturer datasheets. The equivalent IEC recommended binary prefix would be 1 KiB.