Arduino is a company that specialises in open-source hardware and software.

They develop boards that utilise microcontrollers as their central processing unit (CPU). 

So what microcontrollers does an Arduino use?

There is no one word answer to this. There are many different versions and boards of Arduino which come in different sizes, specifications etc. They all use different microcontrollers. However, the majority of the microcontrollers used in Arduino boards are from the same family, that being the Atmel AVR family manufactured by Microchip. The most common microcontroller used from that family is the AtMega328.

An Arduino board is a useful piece of electronic hardware, that has many great features and capabilities.

The standard Arduino board has everything you need to get started. It includes an on board voltage regulator,  input and output digital/analog pins, and pre-programmed boot loader to upload programs to the microcontroller’s flash memory. 

The features of an Arduino board depends on the version and what hardware is included which increases its capability. Things like bluetooth capability, internet connectivity via wifi and many more.

There are also additional expansion boards known as ‘shields’ that can be added to your standard Arduino board to enhance its capability.

The standard Arduino board has everything you need to get started. 

It is great for beginners just getting started, to the expert trying to prototype circuits.

What is a microcontroller?

Let’s take a quick look at what microcontrollers are.

A Microcontroller is basically a mini computer that can be found on an Integrated Circuit (IC). 

It is a device that includes onboard memory, and  programmable input/output ports. 

They also include  features such as Timers, Analog to Digital Converter (ADC), Digital to Analog Converter (DAC), SPI and I2C communication and many others. 

The microcontroller acts as the brain of a bigger electronic system. It fetches, decodes, and executes all instructions which are stored in its flash memory.

Sometimes, people confuse microcontrollers for microprocessors. While they are quite similar in some aspects, they have many differences.

Purpose of a Microcontroller

Depending on the application, a microcontroller can be used in many different ways.

As we saw, it acts as the brain of a bigger electronic system.

Whether this system is your toaster, a mobile phone, weather station etc.

Their purpose is to run a specified program that is stored in Read only Memory (ROM). This program is written by the programmer with specific tasks in mind.

An example scenario would be, a Passive Infrared (PIR) sensor and Lamp connected to the microcontroller as an Input and Output respectively. 

The programmer can then write instructions like whenever the PIR sensor is triggered, to turn the lamp on. 

This program gets downloaded in machine code and interpreted by the microcontroller accordingly. 

Due to their small size and low cost, microcontrollers are a great option for hobbyists, makers, and engineers prototyping circuits.

Different types of Microcontrollers

Going forward, it will be beneficial for you to know the different types of microcontrollers because you will then be familiar with the type of microcontroller that an Arduino uses.

Just like there are many different manufacturers of cars, there are many different manufacturers of microcontrollers.

The major players in the game are Microchip, Texas Instruments, Silicon Labs, Dallas Semiconductor and Intel. There are many more, but these are the most common.

When it comes to the microcontroller, you have different versions available.

Each microcontroller is differentiated by the architecture it was built on. 

The most common microcontrollers are the PIC, AVR, 8051 and MSP. Again, there are others, but these are the most common.

Atmel Avr Microcontrollers

As we are concerned with what microcontroller an Arduino uses, we will concentrate on the AVR microcontrollers (since these are the most commonly used in an Arduino).

AVR is a family of microcontrollers that was developed by Atmel in 1996. 

In 2016, Microchip Technology acquired Atmel.

These AVR microcontrollers are based on a modified Harvard architecture 8-bit RISC single chip microcontroller.

They distinguish themselves from other microcontrollers as they were the first to use on-chip flash memory for program storage rather than EPROM or EEPROM

Different AVR Microntrollers

The AVR family of microcontrollers are further divided into subcategories. 

The subcategories determine different characteristics and specifications such as program memory, number of pins, number of timers, number of PWM channels etc. 

The three major groups are;

  • tinyAVR 
    • 0.5 – 32KB program memory
    • 6- 32 pin package
  • megaAVR
    • 4 – 256 KB program memory
    • 28 – 100 pin package
  • XMEGA
    • 16 – 384 KB program memory
    • 44 – 64 – 100 pin package

The great thing is that, depending on the needs of the project you might be working on, you can choose the appropriate AVR microcontroller that matches your project specifications.

What is an Arduino?

AVR microcontrollers are a great piece of technology that are capable of many things. 

Unfortunately, setting them up, while not hard, is quite cumbersome. You need a breadboard to be able to embed the microcontroller in, provide the right power supply run wiring all over the place etc.

If you are a beginner it can be quite daunting, or if  someone who just wants to get started prototyping it can be quite annoying going through all those steps.

What’s great about the Arduino, is that everything is already set up and ready to go. It includes a voltage supply, header pins to connect your input/outputs and on-board programmer to program the microcontroller.

You just need to connect whatever external peripheral circuitry your project requires and write the code. 

The Arduino removes all the guesswork and makes getting started a smoother experience.

A great benefit of using an Arduino is that it has a strong community. There are multiple forums containing solutions to many problems. So, if you ever get stuck just look to the community for help.

Different Arduino Boards

Just like the microcontroller, there are many different versions of the Arduino. 

They are however, all produced and manufactured by the same company (Arduino).

Different Arduino boards have different specifications such as Microcontroller, Operating Voltage, Processing Speed, Analog Inputs , PWM channels, SRAM, FLASH, and UART. 

For a comprehensive look, check out this link.

Again, depending on the need of the user, the right Arduino board can be chosen.

The Microcontroller an Arduino uses?

The majority of Arduino boards use Atmel AVR microcontrollers. The most common being from the AT Mega family, the AT Mega 328.

Below are all the Arduino Boards, and the microcontrollers that they use.

  • Arduino Uno – ATmega328P-PU
  • Arduino Mega – ATmega 2560
  • Arduino Nano – ATmega328P-AU
  • Arduino Leonardo – ATmega32u4
  • Arduino 101 – Intel Curie
  • Arduino Micro – ATmega32U4
  • Arduino Mini – ATmega328
  • Arduino Zero – ATSAMD21G18
  • Arduino Due – AT91SAM3X8E
  • Arduino ADK – ATmega2560
  • Arduino MO – ATSAMD21G18
  • Arduino MO Pro – ATSAMD21G18
  • Arduino MKR Zero – SAMD21 Cortex-M0+
  • Arduino YÚN – ATmega32U4
  • Arduino Ethernet – ATmega328
  • Arduino Tian – Atheros AR9342
  • Arduino Industrial 101 – Atheros AR9331
  • Arduino Leonardo ETH – ATmega32u4
  • Arduino MKR WAM 1300 – SAMD21 Cortex-M0+
  • Arduino MKR GSM 1400 – SAMD21 Cortex-M0+
  • Arduino Gemma – ATiny85
  • Arduino Lilypad Arduino USB – ATmega32u4
  • Arduino Lilypad Arduino Main Board – ATmega168/ATmega328V
  • Arduino Lilypad Arduino Simple – ATmega328P-AU
  • Arduino Lilypad Arduino Simple Snap – ATmega328P-AU

As you can see, many Atmel AVR microcontrollers are being used at the heart of an Arduino. The most common being from AT Mega series.

Benefits of using an Arduino

There are many benefits to using an Arduino. 

Beginner

If you are just starting out with embedded electronics, it’s quite a daunting task having to figure out what microcontroller to buy, how to set up a power supply to power it, wire up the right pins etc.

An Arduino takes away the fear and hassle of having to set up all the proper circuitry to get your microcontroller up and running.

Prototyping

The same statement holds true for an expert as well.

Maybe an engineer needs to come up with a prototype for a project as soon as possible. The last thing he/she needs to worry about is setting up the bare bones of a microcontroller circuit.

Instead, they can just grab an Arduino board and start prototyping their idea which is a better use of their time. 

Community

The truth of the matter is that you are going to come across many problems.

Some of these problems you will be able to solve through trial and error (speaking from personal experience). 

Other times however, you are going to need a helping hand.

This is where the Arduino community comes to the rescue. 

Since the Arduino board is the go to choice for hobbyists and engineers alike, there are many forums online with smart people who you can ask for help. 

Upgrades

If you have opted for the standard version of the Arduino, you are not restricted to its functionality.

You can upgrade the functionality of your board using external expansion boards known as ‘shields’.

Say you want to add bluetooth capability to your next project, all you need to do is buy a ‘bluetooth shield’.

You are not confined to the limits of the stock Arduino Board.