Arduino– это платформа для разработки электронных устройств, точнее их прототипов и макетов. Включает в себя железо (платы) и софт (среда разработки).
Семейство Arduino – несколько моделей так называемых отладочных плат. Отладочная плата представляет собой как ни странно печатную плату, на которой стоит микроконтроллер (далее МК) – та самая штука, которую мы будем программировать. В младших платах Arduino используются микроконтроллеры AVR(UNO, Nano, Mega, Leonardo), в современных моделях стоят более мощные ARM Cortex для более серьёзных проектов.
Ардуино является открытой платформой, поэтому модельный ряд постоянно пополняется неофициальными платами от других производителей, такие платы называют “Arduino-совместимыми”. С ними можно работать в официальной программе Arduino IDE, писать на том же языке с тем же набором команд и даже использовать те же библиотеки! В качестве примера: это платы Teensy, платы на базе МК esp32 и esp8266 (Wemos, NodeMCU), различных китайских клонов и так далее.
Железо (аппаратная часть)

Микроконтроллер ATmega328P
Сердцем платформы Arduino Uno является 8-битный микроконтроллер фирмы Microchip — ATmega328P на архитектуре AVR с тактовой частотой 16 МГц. Контроллер обладает тремя видами памяти:
32 КБ Flash-памяти, из которых 0,5 КБ используются загрузчиком, который позволяет прошивать Unoс обычного компьютера через USB. Flash-память постоянна и её предназначение — хранение программ и сопутствующих статичных ресурсов.
2 КБ RAM-памяти, которые предназначены для хранения временных данных, например переменных программы. По сути, это оперативная память платформы. RAM-память энергозависимая, при выключении питания все данные сотрутся.
1 КБ энергонезависимой EEPROM-памяти для долговременного хранения данных, которые не стираются при выключении контроллера. По своему назначению это аналог жёсткого диска для Uno.
Микроконтроллер ATmega16U2
Микроконтроллер ATmega328P не содержит USB интерфейса, поэтому для прошивки и коммуникации с ПК на плате присутствует дополнительный микроконтроллер ATmega16U2 с прошивкой USB-UARTпреобразователя. При подключении к ПК ArduinoUno определяется как виртуальный COM-порт.
Порт USB Type-B
Разъём USB Type-Bпредназначен для прошивки и питания платформы Arduino. Для подключения к ПК понадобится кабель USB (A— B).
Разъём питания DC
Коннектор DC Barrel Jack для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.
Понижающий регулятор 5V
Понижающий линейный преобразователь NCP1117ST50T3G обеспечивает питание микроконтроллера и другой логики платы при подключении питания через разъём питания DC или пин Vin. Диапазон входного напряжения от 7 до 12 вольт. Выходное напряжение 5 В с максимальным выходным током 1 А.
Понижающий регулятор 3V3
Понижающий линейный преобразователь LP2985-33DBVR обеспечивает напряжение на пине 3V3. Регулятор принимает входное напряжение от линии 5 вольт и выдаёт напряжение 3,3 В с максимальным выходным током 150 мА.
Кнопка сброса
Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.
ICSP-разъём ATmega328P
ICSP-разъём выполняет две полезные функции:
Используется для передачи сигнальных пинов интерфейса SPI при подключении ArduinoShield’ов или других плат расширения. Линии ICSP-разъёма также продублированы на цифровых пинах SS/10, MOSI/11, MISO/12 и SCK/13.
Предназначен для загрузки прошивки в микроконтроллер ATmega328Pчерез внешний программатор. Одна из таких прошивок — Bootloaderдля Arduino Uno, который позволяет прошивать платформу по USB.
ICSP-разъём ATmega16U2
ICSP-разъём предназначен для программирования микроконтроллера ATmega16U2.