This is a question I’ve been asked several times, given the similarities between an Arduino board and a PC motherboard (both have a central unit processor, a clock, expansion ports, USB communication). It is common to wonder if Arduino is a computer or something else entirely. Let’s check out what an Arduino is made of, then I’ll address the question considering what we’ve learned. I’ll assume you know the basics about computers and their components–if not, you can take a quick look at my entry explaining computers.
The above image shows us the most popular Arduino board, called Arduino Uno. I’ve highlighted its main component, an AVR Atmega328P microcontroller, in a red square. Why is this the main component of the board? Because here’s where all the logic and processing happens in order to control whatever is connected to Arduino (servo motors, LCD screens, midi players, buttons, sensors, and more…) What is this microcontroller made of? Let’s dive deeper into microcontrollers…
A microcontroller, or MCU, is an integrated circuit that contains the following components:
- Central Unit Processor (CPU)
- Random Access Memory (RAM)
- Read Only Memory (ROM)
- Input/Output peripherals
Did you notice something? Those components sound very familiar, don’t they! In fact, a computer has all of them–the difference being that they are separated from the CPU in most PCs, but a microcontroller has everything on a single chip. Now let’s check out the Atmega328P specs to get a picture of how much processing power we are talking about:
- Flash memory: 32 kBytes
- Max. operating speed: 20 MHz
- CPU: 8-bit
- SRAM (static RAM): 2 kBytes
- EEPROM (programmable ROM): 1 kBytes
This sounds pretty slow and limited compared to the performance of today’s personal computers, doesn’t it? The processor could not even come close to running an operating system like GNU/Linux or Windows. But the pros of using Arduino include its size for embedded projects, and its lower power consumption that allows it to run battery-supplied for months.
Let’s go back to our question: is Arduino a computer? Yes, it is a micro-computer, designed for embedded applications and standalone projects where size and energy are limited, like gathering temperature and humidity in a remote weather station, a wearable heart rate monitor, a small remote controlled car, and more.