On the official Arduino website (arduino.cc) it is described as a “open-source electronics platform based on easy-to-use hardware and software” which, from my point of view, is an on-point explanation of what Arduino is. But as this description is kept very general, in this post I will try to explain what Arduino is in detail and why I am so fascinated by the endless possibilities of what can be done with Arduino.
Hardware
Today there is an uncountable number of different Arduino compatible boards, for example there is the Arduino Uno, the Arduino Nano, the Arduino Mini and the Arduino Zero, only to name some of the more popular boards. They all have very different features, but all of them have one thing in common, and that is a microcontroller as the “brain” of every Arduino board. The Arduino Uno for example is based on the ATmega328P microcontroller. These microcontrollers execute the code, control the output pins and can read data from the input pins. Inside of them there is a main processor, but also the memory, a timer and sometimes even an analog to digital converter. Every Arduino board has some general input/output pins to which any electronic part like a LED or a button can be connected and controlled/read out. These features make the Arduino a very versatile tool for hobbyist electronic projects and by now are even used in the industry to control different applications. This is a link to a website with most of the popular boards listed for comparison of the different features.
This is my favorite Arduino Board, the Arduino Nano V3.0.
Software
As the Arduino boards are meant to be embedded systems, they cannot be compared to a normal computer. They don’t run any operating system and only execute the code that was uploaded to them. In order to write and upload code to an Arduino board you can use whatever program you want, but from my experience, the Arduino IDE is the easy and best way to write code for your Arduino. The programming language is based on popular C but was a bit simplified in order to make it easier to start programming an Arduino.
void loop() {
digitalWrite(13, HIGH); // turn on the led connected to pin 13
delay(1000); // wait for one second
digitalWrite(13, LOW); // turn off the led connected to pin 13
delay(1000); // wait for one second
}
This for example is a small program that repeatedly turns on the led connected to pin 13, waits for a second, turns the led off again and then waits for another second. By the simplicity of this program it gets really obvious why the Arduino is so widely spread and used by many makers of electronic projects.
All images not credited are my own. You are welcome to use them with credit.