What is an Arduino ?
Arduino is an open source development platform that was introduced as a tool to help program microcontrollers. It has become very popular due to it’s quick and easy way to get started programming microcontrollers and also has a very large online community for support.
The process of learning to use microcontrollers is made much easier than one would traditionally do by programming a standalone microcontroller integrated circuit (IC) which requires an external programmer and hardware circuitry. The platform uses a modular system to add functionality to the board so no soldering is required. The add on modular circuits are called shields which enable a programmer to quickly and easily add external components and modules such as temperature sensors, relays for motor control, GPS modules and many many more. The primary board is called the Arduino Uno which has many digital and analogue inputs and digital outputs for the addition of shields and components. Other boards include the Nano for reduced size, Mega for increase inputs and outputs and the Pro Mini their smallest board for the serious advanced user.
Once the platform has been mastered the natural progression would be to program a microcontroller directly and build your own custom circuit boards.
We will now cover the following topics:
- What can the platform do ?
- What are the hardware features ?
- Types of Boards.
- Types of Sensors, Modules and Displays.
- The Arduino platform ?
- Why use an Arduino ?
- Where to from here ?
What can the platform do ?
The platform can be used to programmed a microcontroller to do things from monitoring to control, to robotics, to running a simple web server. The basic functionally is it’s digital input/output capability for switching such as switching lights and motors on or off, to sensing a digital input such as a button press or a passive infrared detector used in a home alarm system. Several analogue inputs are provided to monitor signals where voltages vary. It features other digital interfaces for communicating such as serial peripheral interface (SPI), I2C and RS232 which allows the connection of digital devices like LCD screens and digital temperature sensors.
What are the hardware features ?
The board is built around an Atmel AVR microcontroller. The Uno development board contains an AVR Atmega328 microcontroller which is essentially a single chip IC. This microcontroller has the following features:
- 32KB of flash memory
- 2 KB of SRAM memory
- 1KB EEPROM memory
- 27 I/O pins
- 8 ADC channels
- 20MHz maximum clock speed and up to 1 instruction per cycle.
Although the ATmegga328 appears to be very limited in speed and memory, these type of integrated circuits are designed for performing specific tasks and are not designed for doing very large amounts of processing like a PC does. It is designed to do specific control jobs like monitor a status and react to it such as monitoring air temperature in a room and turning an air conditioner on if the temperature goes above a set limit. In general the memory contained in a microcontroller is limited from several kilobytes to several hundreds of kilobytes. Having such as small program memory requires the programs to be very compact. But even with very limited memory it is amazing what can be done with them. The more efficient the code, the more you can do with the limited memory. The speed for the average microcontroller is limited to about 20Mhz with higher end products going in the hundreds of MHz.
Types of boards
There are several types of official Arduino boards available which include:
- Uno – Credit card sized and a range of input/output and analogue input pins.
- Nano – Match box sized equivalent of the UNO board.
- Mega – Larger than the UNO but with many more IO and larger memory capacity.
- Pro Mini – smaller than the nano and without the USB hardware – needs an external USB FTDI serial converter to program.
Types of Sensors, Modules and Displays
There is a very large amount of attachments available from shields to directly connecting sensors and modules. Sensors available include – temperature, humidity, pressure, alcohol, CO2, UV light, visible light, IR detector and also many modules like GPS, bluetooth, wireless tranceivers, GPRS. And the list goes on and on.
The platform consists of an easy to use modular system and integrated development environment (IDE) software. The modular system uses expander boards called shields to add functionality to the platform. There are many shields available with all sorts of sensors and peripherals such as temperature sensors, GPS, GPRS and wireless communications shields. No soldering is required through the use of pluggable shields so it is clean to use and does not require a workshop to use in. Push wire breadboards can be used to expand the board further for experimenting with your own expansion features. The boards are programmed using their own branded IDE which uses the C++ programming language with ready built libraries to easily program the hardware. The board is connected to a PC or laptop with a USB cable. The USB cable also supplies power the board. If more than 500mA is used for a project then an external AC power pack will be required. A plug pack can be plugged directly into the board.
Why use and Arduino ?
The platform is like a LEGO set for microcontroller development boards, their own IDE and modules (shields) that can plug straight into the development boards and your up and programming in no time at all. It is easy and speedy to experiment while prototyping your projects. And being very popular there are many readily available components, source code examples as well as a huge community for support. The Arduino platform is so versatile it can be used for a huge number of things from simple temperature reading to data logging and remote control and monitoring via wireless or over the internet applications.
Where to from here ?
If this post has convinced you that the Arduino is a good platform for you to start programming microcontrollers, then you’ll be sure to like our next post “Getting started with microcontrollers in minutes using Arduino”.
Thank you for reading this post, please share it with your friends if you liked it.
Before you move on, I would love for you to suggest some topics you would like to see covered on the Smartmicrocontroller.com website this year by leaving a comment in the comments section in the youtube channel, or send us a message through one of the social media links on the about page.