Is Arduino A Microcontroller Or An Embedded System?
When I started working with Arduino, I was hit with a barrage of jargon that was completely foreign to me. I had trouble distinguishing between an Arduino, a microcontroller, and an embedded system. Even though I know the difference now, I wondered back then:
“Is Arduino an embedded system or a microcontroller?”
Arduino is neither a microcontroller nor an embedded system. Arduino uses a microcontroller, and it can be used to create an embedded system. Basically, a microcontroller is a subgroup of Arduino and Arduino is a subgroup of an embedded system.
If you’re still confused about what I mean or if you want to learn more, I will dive into the complexities of Arduino, embedded system, and microcontroller below.
Differences and Similarities Between Arduino and Microcontroller
A microcontroller is basically a very small and basic form of a computer. Because of its small size, it uses much less power than a regular computer.
Similar to a computer, the microcontroller is a small chip that contains memory, peripherals, input/output (I/O), and a processor.
The Arduino itself is a microcontroller development board. That doesn’t mean it’s a microcontroller itself. Instead, it means that the Arduino board contains a microcontroller chip called the ATmega328P in addition to other components that serve other purposes.
For instance, besides the ATmega328P, the Arduino Uno has a USB (Universal Serial Bus) port, digital I/O pins, a reset button, and a programmer.
Brief History of Arduino
In 2005, a company called Arduino created a product called an Arduino. The company focused on both the hardware and software aspects to make it accessible and easy for the average person to use.
For the software side, the company created the Arduino IDE (Integrated Development Environment). For the hardware aspect, it created the Arduino (the most popular one as of now is the Arduino Uno R3).
A major difference between Arduino and microcontroller is that you can’t reprogram a microcontroller once it’s programmed.
Otherwise, it’s very much like an Arduino: they’re both easy to troubleshoot, are small, and are cheap (although the microcontroller is smaller and cheaper than the Arduino).
Is A Microcontroller The Same As A Microprocessor?
A microprocessor is different from a microcontroller because it only has a central processing unit (CPU) while the microcontroller has a CPU, peripherals, RAM, and ROM.
A microprocessor cannot work by itself since it needs an input, RAM (random-access memory), ROM (read-only memory), or timers in order to give an output or a serial interface.
On the other hand, a microcontroller is able to do all the things I’ve mentioned a microprocessor can do in a single chip because it has its own necessary peripherals.
In general, I’d recommend you use a microcontroller rather than a microprocessor. It offers more functionality and is straightforward to program.
But if you are looking for something that can access large amounts of memory in a short period of time, a microprocessor is the answer. Microcontrollers are generally not recommended for this specific function because its memory is already filled and it comes in a limited quantity.
For instance, a common microcontroller’s flash memory has a maximum of 2MB (megabyte).
Differences and Similarities Between Arduino and Embedded System
Like I’ve mentioned before, an Arduino is very simple to use and incorporates the Atmel microcontroller.
While an Arduino is a microcontroller development board, an embedded system is a microcontroller-based system that involves hardware and software.
An embedded system utilizes the computer processor, memory, and I/O (input/output) peripheral devices. It also plays a role in the overall (larger) electrical or mechanical system.
An embedded system reacts in real-time to any outside stimuli. This means that if it senses a change, it will adjust its functions accordingly and quickly, just like an Arduino.
Embedded systems also focus on a specific task and have either a minimalistic UI (user interface) or no UI at all. A UI is where the user can interact with the computer and send inputs (such as clicking on something with a mouse or double-tapping an app on your iPad).
It is meant for larger projects (than the ones Arduino can handle).
Interestingly, Arduinos can run for a long time.
If you want to see how long an Arduino can run or how you can make your Arduino run for a long time, then you should go read my guide on how an Arduino can run 24/7. I talk about the 4 ways you can make it run constantly and factors you want to avoid that will diminish its ability.
Arduino is not very powerful and uses less power, which is why it’s mainly used by engineers to prototype their designs. After that, they would tweak any small flaws and manufacture their finished product.
Which One Should You Use?
I’d generally recommend everyone to start out with Arduino. It is much easier and very user-friendly (which is the company’s goal) in terms of handling the circuitry, electronics, and programming in the Arduino IDE.
This is especially useful if you lack experience and knowledge in programming, hardware, or both.
Despite its simplicity, you can build complicated projects such as the Knock-Lock (where you rap your knuckles on the piezo to activate the servomotor) or the Zoetrope (where you use a DC motor to spin an image to produce a short animation clip).
If you’re just getting started with Arduino or are curious about what you should know about Arduino, then you should check out my guide on what you should know before starting Arduino.
However, once you’ve become more experienced, you can start working with microcontrollers. A few of their functionalities may include sensing light and temperature, manipulating devices, or detecting fire.
One might choose to work with a microcontroller because it’s widely available, reliable for the project they might be working on, and it’s cost-effective for them.
If you are really professional and want to flex your expertise, you can choose to dabble in embedded systems. This is very hard because you need to be proficient in the programming language, you have to make the complete system by yourself, and it’s hard to debug (meaning fix your coding mistakes).
A few projects made with an embedded system include the mobile phone, washing machine, and the GPS (Global Positioning System).
Summary – tl;dr (Too Long; Didn’t Read)
Here are the key takeaway points you should keep in mind after reading this article:
- You can think of Arduinos as a subgroup of embedded systems, but encompassing microcontrollers
- Microcontrollers is a computer in a smaller form factor
- An embedded system is a microcontroller-based system that involves hardware and software
- If you’re just starting out in the world of electronics, I’d recommend working with Arduinos first
In the end, I hope you have gained a good idea of how you can system-atically work with embedded systems, microcontrollers, and Arduinos!