Arduino is the open source platform for embedded developers. Which is designed to code for AVR based micro controllers Arduino has its own IDE (Integrated Development Environment), which gives the programmer (any) to program any AVR based MCU belongs to ATMEL manufacturer. There are different flavours of Arduino boards available which is stated below,
- ARDUINO UNO ATMEGA328.
- ARDUINO MEGA 2560 ATMEGA2560.
- ARDUINO NANO ATMEGA328P (SMT).
- ARDUINO PRO ATMEGA328 (SMT) (OR) ATMEGA168
- ARDUINO LILYPAD ATMEGA328P (SMT) (OR) ATMEGA168 …
It is not much complicated to program any Arduino boards. Anyone can program them; only thing required is basic programing concepts. Mostly Arduino IDE accepts two programing languages C/C++. For better understanding let’s do program with C-programing language.
For getting started with Arduino lets work with Arduino UNO board which comes with ATMEGA328 (DIP) IC.
Note: all the Arduino boards are boot loaded; without using the boot loader controllers can not be programmed by the Arduino IDE directly. The controllers brought from factories cannot be programmed using Arduino IDE.
Before starting just have glance on ATMEGA328 IC. It is 28-Pin DIP IC which runs on AVR machine with 20 MIPS at 20 MHz , with 23 Digital I/O data lines, 6 ten bit ADC channels, one SPI, one I2C, 1KB EEPROM, 32KB of internal Flash memory and 2KB of internal SRAM, these are the general features of ATMEGA328 IC.
The pin description of Arduino UNO is as follows, here the UNO board has 14 digital I/O pins, 6 Analog pins, 1 ISP interface, 1 I2C interface, and a separate ICSP for programing the chip through the AVR programmers, 1 UART port and 6 PWM channels which is include with Digital I/O pins.
Note: The Digital I/O and Analog interface pins changes according to the Arduino board used as shown.
Depending upon the functionality of the baord, there are different kinds of Arduino boards are available in the market and they as as shown below.
- Arduino UNO
- Arduino NANO
- Arduino MINI PRO
- Arduino MEGA
- Arduino BLUETOOTH
- Arduino ETHERNET
- Arduino YUN
- Arduino ESPLORA