What is Arduino?
Arduino is an open-source electronic prototyping platform (open-source) based on a simple board with inputs and outputs, in a development environment that is based on the Processing programming language. It is a device that connects the physical world with the virtual world or the analogue world with the digital world.


Parts of an Arduino
The Arduino as any component is made up of different parts such as inputs, outputs, power, communication and shields.

They are the pins on our board that we can use to make readings. Onboard ones are the digital pins (from 0 to 13) and the analogue pins (from A0 to A5).

The output pins are used to send signals. In this case, the output pins are only the digital ones (0 to 13).

Other pins
We also have other pins like the GND (ground), 5V that provides 5 Volts, 3.3V that provides 3.3 Volts, the REF voltage reference pins, TX (transmit) and RX (read) also used for serial communication, RESET to reset, Vin to power the board and ICSP pins for SPI communication.

As we have seen, the Vin pin is used to power the board but the most normal thing is to feed it through the power jack using a voltage of 7 to 12 Volts. We can also feed it through the USB port but in most applications, we will not have it connected to a computer.

In our tutorials, we will communicate with Arduino via USB to load the programs or send/receive data. However, it is not the only way for Arduino to communicate. When we insert a shield it communicates with our board using the ICSP (ISP communication) pins, pins 10 to 13 (also used for ISP communication), the TX / RX pins or any of the digital ones since they are capable of being configured as pins input or output and receive or send digital pulses.

This is the name given to the boards that are inserted on the Arduino as a shield, expanding its possibilities of use. In the market, there is an infinity of shields for each type of Arduino. Some of the most common are those of Ethernet, Wi-Fi, Ultrasound, LCD Screens, relays, LED’s, GPS matrices.

Arduino parts

Arduino is constituted in hardware by a main micro controller called 8-bit Atmel AVR (which is programmable with a high-level language), present in most Arduino models

The general characteristics of all Arduino boards are as follows:

The ATmega328 microprocessor
32 bytes of flash memory
1 byte of RAM
16 MHz
13 pins for digital inputs / outputs (programmable)
5 pins for analogue inputs
6 pins for analogue outputs (PWM outputs)
Completely autonomous: Once programmed, it does not need to be
connected to PC
ATmega328 Microcontroller
5V operating voltage
Input voltage (recommended) 7-12 V
Input voltage (limit) 6-20 V
Digital I / O Pins 14 (with 6 PWM outputs)
Analogue inputs Pins 6
DC current I / O Pin 40 mA
DC current 3.3V Pin 50 mA
Flash memory 32 KB (2 KB for the bootloader)
EEPROM 512 byte
Clock speed 16 MHz

How does Arduino work?
The Arduino is a microcontroller-based board, specifically an ATMEL. A microcontroller is an integrated circuit (we could speak of a microchip) in which instructions can be recorded. These instructions are written using a programming language that allows the user to create programs that interact with electronic circuits.

Normally a microcontroller has digital inputs and outputs, analogue inputs and outputs and inputs and outputs for communication protocols. An Arduino is a board that has all the necessary elements to connect peripherals to the inputs and outputs of the microcontroller. It is a printed board with all the necessary components for the operation of the micro and its communication with a computer through serial communication.

Serial communication is a communication protocol that was once widely used through the serial ports that computers of yesteryear brought.
There are different Arduino models, with multiple characteristics in terms of size, shapes, functions and prices.


Why use Arduino?
There are many other microcontrollers and microcontroller platforms available for physical computing. Parallax Basic Stamp, Netmedia’s BX-24, Phidgets, MIT’s Handyboard, and many other offers with similar functionality. All of these tools take the messy details of microcontroller programming and pack it in one easy-to-use package. Arduino also simplifies the process of working with microcontrollers but offers some advantages for teachers, students, and interested amateurs over other systems.

Arduino boards are relatively cheap compared to other microcontroller platforms. The least expensive version of the Arduino module can be assembled by hand

The Arduino software runs on Windows, Macintosh OSX and GNU / Linux operating systems. Most microcontroller systems are limited to Windows.

The simple and clear programming environment
The Arduino programming environment is easy for beginners to use, but it’s flexible enough so that advanced users can take advantage of it too. it is conveniently based on the Processing programming environment.

Open source and extensible software
Arduino software is released as open-source tools, available for extension by experienced programmers. The language can be expanded through C ++ libraries, and people who want to understand the technical details can make the jump from Arduino to the AVR C language programming on which it is based. Similarly, you can add AVR-C code directly to your Arduino programs if you want.

Open source and extensible hardware
The Arduino is based on Atmel’s ATMEGA8 and ATMEGA168 microcontrollers. The blueprints for the modules are released under a Creative Commons license, so experienced circuit designers can make their own version of the module, extending and improving it. Even relatively inexperienced users can build the module board version to understand how it works and save money.