Arduino - Next Level of Electronics
Arduino - Next Level of Electronics
Arduino is an open-source electronics prototyping platform, designed to make the process of using electronics in
multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino
board with an Atmel AVR processor and on-board I/O support. The software consists of a standard programming
language and the boot loader that runs on the board.
Arduino hardware is programmed using a Wiring-based language (syntax + libraries), similar to C++ with some
simplifications and modifications, and a Processing-based IDE.
Currently shipping versions can be purchased pre-assembled; hardware design information is available for those who
would like to assemble an Arduino by hand. Additionally, variations of the Italian-made Arduino—with varying levels of
compatibility—have been released by third parties.
The Arduino project received an honorary mention in the Digital Communities category at the 2006 Prix Ars
Electronica.
The project began in Ivrea, Italy in 2005 to make a device for controlling student-built interaction design projects less
expensively than other prototyping systems available at the time. As of February 2010 more than 120,000 Arduino
boards had been shipped.[4] Founders Massimo Banzi and David Cuartielles named the project after a local bar named
Arduino, The name is an Italian masculine first name, meaning "strong friend". The English pronunciation is "Hardwin",
a namesake of Arduino of Ivrea.
Arduino Hardware :
An Arduino board consists of an 8-bit Atmel AVR microcontroller with complementary components to facilitate
programming and incorporation into other circuits. An important aspect of the Arduino is the standard way that
connectors are exposed, allowing the CPU board to be connected to a variety of interchangeable add-on modules
(known as shields). Official Arduinos have used the megaAVR series of chips, specifically
the ATmega8, ATmega168, ATmega328, and ATmega1280. A handful of other processors have been used by Arduino
compatibles. Most boards include a 5 volt linear regulator and a 16 MHz crystal oscillator (or ceramic resonator in
some variants), although some designs such as the LilyPad run at 8 MHz and dispense with the onboard voltage
regulator due to specific form-factor restrictions. An Arduino's microcontroller is also pre-programmed with
a bootloader that simplifies uploading of programs to the on-chip flash memory, compared with other devices that
typically need an external chip programmer.
At a conceptual level, when using the Arduino software stack, all boards are programmed over an RS-232 serial
connection, but the way this is implemented varies by hardware version. Serial Arduino boards contain a simple
inverter circuit to convert between RS-232-level and TTL-level signals. Current Arduino boards are programmed
via USB, implemented using USB-to-serial adapter chips such as the FTDI FT232. Some variants, such as the Arduino
Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable, Bluetooth or other methods.
(When used with traditional microcontroller tools instead of the Arduino IDE, standard AVR ISP programming is used.)
The Arduino Nano, and Arduino-compatible Bare Bones Board and Boarduino boards provide male header pins on the
underside of the board to be plugged into solderless breadboards.
Looking at this example board from the top down, this is an outline of what you will see (parts of the board you might
interact with in the course of normal use are highlighted):
Microcontrollers
ATmega168 (used on most Arduino boards) ATmega8 (used on some older board)
14 (of which 6 provide PWM 14 (of which 3 provide PWM
Digital I/O Pins Digital I/O Pins
output) output)
Analog Input Pins 6 (DIP) or 8 (SMD) Analog Input Pins 6
DC Current per I/O DC Current per I/O
40 mA 40 mA
Pin Pin
Flash Memory 16 KB Flash Memory 8 KB
SRAM 1 KB SRAM 1 KB
EEPROM 512 bytes EEPROM 512 bytes
Digital Pins
In addition to the specific functions listed below, the digital pins on an Arduino board can be used for general purpose
input and output via the pinMode(), digitalRead(), and digitalWrite() commands. Each pin has an internal pull-up resistor
which can be turned on and off using digitalWrite() (w/ a value of HIGH or LOW, respectively) when the pin is configured
as an input. The maximum current per pin is 40 mA.
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. On the Arduino Diecimila, these pins
are connected to the corresponding pins of the FTDI USB-to-TTL Serial chip. On the Arduino BT, they are connected to
the corresponding pins of the WT11 Bluetooth module. On the Arduino Mini and LilyPad Arduino, they are intended for use
with an external TTL serial module (e.g. the Mini-USB Adapter).
External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling
edge, or a change in value. See the attachInterrupt() function for details.
Analog Pins
In addition to the specific functions listed below, the analog input pins support 10-bit analog-to-digital conversion (ADC)
using the analogRead() function. Most of the analog inputs can also be used as digital pins: analog input 0 as digital pin
14 through analog input 5 as digital pin 19. Analog inputs 6 and 7 (present on the Mini and BT) cannot be used as digital
pins.
I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire library (documentation on the Wiring
website).
Power Pins
VIN (sometimes labelled "9V"). The input voltage to the Arduino board when it's using an external power source (as
opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin,
or, if supplying voltage via the power jack, access it through this pin. Note that different boards accept different input
voltages ranges. Also note that the LilyPad has no VIN pin and accepts only a regulated input.
5V. The regulated power supply used to power the microcontroller and other components on the board. This can come
either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.
3V3. (Diecimila-only) A 3.3 volt supply generated by the on-board FTDI chip.
GND. Ground pins.
Other Pins
AREF. Reference voltage for the analog inputs. Used with analogReference().
Reset. (Diecimila-only) Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields
which block the one on the board.
The Arduino IDE comes with a C/C++ library called "Wiring" (from the project of the same name), which makes many
common input/output operations much easier. Arduino programs are written in C/C++, although users only need
define two functions to make a runnable program:
setup() – a function run once at the start of a program that can initialize settings
loop() – a function called repeatedly until the board powers off
In order to program the Arduino board you need to download the development environment (IDE) from here:
http://www.arduino.cc/en/Main/Software
Choose the right version for your operating system.
Download the file and uncompress it.
The first thing to do is to install the drivers that allow your computer to talk to your board through the USB port.
Macintosh:
Look for the ―Drivers‖ folder inside the ―arduino-0004‖ folder and double-click on the file called
FTDIUSBSerialDriver_v2_0_1.dmg. When this has opened, install the software contained in the
FTDIUSBSerialDriver.pkg. At the end of this process you’ll have to restart your machine to make sure the
drivers apre properly loaded.
After the installation is successful you will also need to run the command called ―macosx_setup.command‖
Follow the instructions provided by the program and type the password that you use to login into your
computer when asked.
After this program has run successfully you need to turn off your computer. Don’t just reboot or logout,
really turn it off and back on again.
When this phase is over you can plug the board into the computer.
Windows:
Unzip the file called [FIXME] contained in the Drivers directory into a directory you can easily find later on.
Plug the board into the computer and, when the [FIXME] New Device Found [/FIXME] window comes up,
specify the location for the install wizard to look for the drivers.
After the application has come up you will see a window like this one
Firstly, you need to find out which port your device is connected to
Macintosh:
From the ―Tools‖ menu select ―Serial Port‖ and select the port that begins with ―/dev/cu.usbserial-―. The last
3 characters identify which one is the USB port the board is plugged to and change if you plug arduino into a
different port .
Now the Arduino development environment can talk to the Arduino board and program it.
http://www.arduino.cc