The Arduino is an open-source embedded development platform that consists of both hardware and software. The hardware part consists of a microcontroller chip and its operating circuit. It has analog and digital inputs and outputs that connect the Arduino to the physical world.
The software part consists of an Integrated Development Environment (IDE), bootloader, and a huge set of libraries, an executable program that runs on the PC to create the code and upload to the Arduino, which is then executed by the hardware part. The Arduino’s programming language is based on C++ and is designed so that one can create programs without too deep programming knowledge.
The created program is called “Sketch”. The IDE uploads the sketch via USB port from the development environment into the flash memory of the Arduino’s microcontroller. This USB connection to the hardware part must always be present during the development and testing phase. The data transfer is done as a serial data transfer. At the same time, the connection also serves as an aid for debugging. With the help of a “serial monitor”, the states of the inputs and outputs ports can be monitored. After development, the connection to the development environment can be disconnected and the Arduino can communicate with the real world independently as long as it is connected to the power.
The “board” refers to the various versions of the Arduino’s printed circuit boards equipped with components. Different Arduino boards can be selected based on the application. Each board contains different microcontroller, connectors, and interfaces.
Power is supplied either by a separate, external power supply unit or via the connected USB interface. The USB interface can deliver a maximum of 500 mA at 5 Volt voltage. For smaller own developments this kind of power supply is usually sufficient. Besides the power supply just described, the USB interface is also used for communication with the development environment, i.e. for uploading programs (sketches) and reading/sending data via serial monitor.