
В 2003 году был создан первый прототип устройства. Он лишь отдаленно напоминал современные платы микроконтроллеров. Устройство было названо в честь короля Ардуина, итальянским конструктором Массимо Банци. Развиваясь и совершенствуясь, «Arduino» быстро стало брендом аппаратно-программных средств, с помощью которых можно автоматизировать несложные системы.
В основе аппаратной платформы «Ардуино» лежит программируемый контроллер ввода и вывода. Его достоинством является – универсальность, модульность и не высокая цена. Выражаясь другими словами, «Arduino» - это миникомпьютер, который можно запрограммировать для выполнения определенных действий.
Материал обновлён 07.11.2022
Время чтения: 16 минут
В этой статье рассмотрим:
Сравниваем контроллеры на базе Ардуино, подключаем и программируем
Arduino открывает широкие возможности по автоматизации различных устройств и процессов, также он идеален для всех тех, кто увлечен робототехникой и электроникой. При этом пользователю не обязательно быть программистом и обладать специальными знаниями, достаточно иметь желание и творческую идею. С помощью этой аппаратной платформы можно автоматизировать как элементарные процессы, так и создать сложные системы управления.

Общие сведения
Микроконтроллер
В основе любой платы лежит микроконтроллер (МК). Он содержит в себе процессор, оперативную (ОЗУ) и энергонезависимую памяти (ПЗУ), а также снабжен модулями, осуществляющими обмен аналоговыми и цифровыми сигналами. Такие характеристики позволяют создавать компактные одноплатные устройства - микрокомпьютеры. Наличие множества контактов ввода/вывода позволяет легко подключать к плате самые разные устройства и механизмы: сенсоры, датчики, моторы и модули управления и обмена данными.

Большинство моделей конструируется на базе чипов ATmega. В первую очередь это связано с их невысокой ценой и невысокой производительностью, но достаточной для большинства проектов. Наибольшее распространение получили микроконтроллеры: ATMEGA328P, ATMEGA168P и ATMEGA2560.

Однако если требуется обработки большого массива данных или работа с графической информацией, в этом случае требуется большая производительность. Для таких проектов требуются платы с процессорами семейства Cortex-3М (AT91SAM3X8EA) или микроконтроллеры серии ESP.
«Принцип бутерброда»
Для подключения внешних устройств используются штыревые разъемы. При этом все платы, одного модельного ряда, имеют стандартную последовательность расположения контактов, это позволяет создавать универсальные модули для упрощения сборки проектов. Фактически модули насаживаются друг на друга как в бутерброде. Такое свойство (модульность) является одним из основных преимуществ.

Интерфейсы передачи данных
Для обмена данными с периферией или другими платами используются такие протоколы как: UART, IIC (I2C) и SPI.
UART (Univsersal Asynchronos Reciever-Transmitter) – универсальный асинхронный протокол передачи данных. Для его отведено два контакта (обычно 0 и 1) маркируемых RX и TX, а также GND (земля). Протокол позволяет передавать данные со скоростями до 115200 бод, однако чаще используется стандартная скорость в 9600 бод. У плат Mega и Due присутствует три дополнительных аппаратных UART. Они располагаются на выводах с 14 по 19.
I2C (Inter-Integrated Circuit) – межсхемная шина последовательной передачи данных. В протоколе задействовано два контакта SDA (Serial Data) и SCL (Serial Clock). В платах УНО под шину выделены контакты A4 и A5, а также пара контактов у USB разъема. У MEGA и DUE, под IIC, выделены контакты 20 (SDA) и 21 (SCL). Протокол поддерживает передачу данных со скоростью до 100 кГц, а также параллельное подключение до 127 устройств.
SPI (Serial Peripheral Interface) – последовательный интерфейс присоединения периферийных устройств. Это четырёхпроводной протокол передачи данных. В нем задействованы контакты MISO (Master In Slave Out), MOSI (Master Out Slave In), SCK (Serial Clock) и SS (Slave Select). При чем так как SPI не поддерживает адресацию, то подключить можно только одно устройство. Однако есть решения для аппаратной поддержки протокола и увеличения числа подключенных устройств. На SPI выделены контакты 10, 11, 12 и 13, на ArduinoMEGA и ArduinoDUE – с 50 по 53. Также контакты дублируются отдельной 6-пиновой колодкой разъема ICSP


USB (Universal Serial Bus) – универсальная последовательная шина подключения периферийных устройств. Обмен данными через USB используется во многих устройствах и Ардуино-платы не являются исключением. Через порт USB передается питание для самой платы, а также данные для ее прошивки. За работу протокола USB отвечает: в оригинальных платах – микроконтроллер ATmega16U2, а в неоригинальных – контроллеры серии CH340.
Arduino-контроллеры могут иметь как классические USB Type-B разъем, так и другие его модификации: Mini, Micro и даже Type-C.

Преимущества платформы
Ардуино-совместимые микрокомпьютеры обладают следующими преимуществами:
- невысокая цена;
- возможность самостоятельной сборки;
- универсальность и модульность;
- доступность для непрофессионального пользователя;
- большое количество информации в сети: обучающие ролики, обзоры, пошаговые инструкции;
- множество сообществ, где можно получить ответы на интересующие вопросы;
- наличие дополнительного оснащения (периферии): кнопки, датчики, индикаторы и дисплеи, а также другие устройства и аксессуары, обеспечивающие взаимодействие контроллера с окружающим миром;
- простой процесс разработки системы и ее отладки;
- множество универсальных стартовых наборов и роботизированных конструкторов.
Сравнение
Модельный ряд контроллеров очень разнообразен, но все же из их множества можно выделить пять классических: DUO, Mega, UNO, Nano, Micro, а также ряд специализированных. Давайте взглянем на их различия. А в качестве «эталона» будем отталкиваться от характеристик Ардуино УНО приведенных в таблице ниже.
МК | Тактовая частота | Flash-память | ОЗУ | ПЗУ | Рабочее напряжение | Цифровые выходы | Выходы с ШИМ | Аналог. выходы | Размер |
---|---|---|---|---|---|---|---|---|---|
ATmega328P | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 14 | 6 | 6 | 69х54 мм |
Arduino UNO R3 (ATMEGA16U2 + MEGA328P) имеет 14 цифровых входов/выходов, 6 из которых могут использоваться как выходы ШИМ, а также есть 6 аналоговых выходов.

В данной плате применяется чип Atmega16U2, который позволяет превратить плату в любое USB-устройство: от мышки до внешнего диска.
Питание подается по USB или от внешнего источника питания, в качестве которого может использоваться аккумуляторная батарея или сетевой АС/DC-адаптер. Рекомендуется источник питания с напряжением в диапазоне 7-12 В. Объем флеш-памяти составляет 32 КБ.
Контроллер может быть присоединен к компьютеру, другой плате или к другому микроконтроллеру. Для этого он оснащен всем необходимым.
Обратите внимание, что запрещается превышать допустимые величины силы тока! Для одного любого вывода ток не должен быть более 40 мА. Ток для одной группы выводов не может быть более 100 мА. Ток для всего микроконтроллера не должен превышать 200 мА.
Arduino UNO или Mega
Если в классической УНО задействован микроконтроллер ATmega328P, то в Меге его старший брат – ATmega2560. МК отличается увеличенной памятью: флэш-память – 256 КБ, ОЗУ – 8 КБ, ПЗУ – 4 КБ, а также существенно большим числом входов/выходов: 54 цифровых (из них 15 с ШИМ (широтно-импульсная модуляция)), а также 16 аналоговых. За счет большего числа контактов плата на 50% длиннее (102 х 54 мм).

Микроконтроллер включает в себя загрузчик, который облегчает установку новых программ без использования дополнительных программаторов. Работа с платой начинается с ее подключения к компьютеру посредством USB-кабеля, а, нажав на кнопку перезагрузки, вы сможете перезагрузить систему в случае непредвиденного сбоя.
Arduino Due
Due – это ТОП версия среди всей линейки классических плат. В этой модели используется микропроцессор SAM3X на основе ARM ядра Cortex-M3. Он имеет рабочую частоту в 84 МГц, флеш-память на 512 КБ и ОЗУ на 96 КБ. Плата имеет аналогичный Mega-версии размер и столько же цифровых пинов, 12 из которых могут использоваться как выходы с ШИМ. Аналоговых контактов – 12 шт.
Отличительной характеристикой DUE является ее питание. Оно составляет всего 3,3 В, что требует особого внимания при подборе периферийных устройств. Размеры Due аналогичны УНО.

Arduino Nano vs Pro mini
Нано и Про Мини – две компактные версии для разработки миниатюрных устройств. Их размеры и вес позволяют создавать компактные и автономные DIY устройства.
Ардуино Нано имеет размер 18 х 43 мм и аналогичные UNO характеристики по числу входов/выходов, а также объему памяти. Также существует версия Nano на базе ATMega168P. Она имеет аналогичные ATMega328P характеристики, но урезанную в 2 раза память. За счет меньшего объема памяти, платы на основе ATMega168 дешевле примерно на 30%.
На плате расположен стабилизатор 5 В и загрузчик, позволяющий платформе перепрошивать саму себя. Можно не использовать загрузчик, а запрограммировать микроконтроллер через ICSP-выводы. Кнопкой RESET производится перезагрузка в случае непредвиденного сбоя. Плата подключается к компьютеру через miniUSB-кабель.
Arduino Pro Mini имеет еще более компактные размеры – 18 х 33 мм. Чтобы достичь этого, пришлось отказаться от контроллера шины USB. Поэтому для загрузки кода программы в Про Мини требуется внешний UART-контроллер (программатор). Pro mini питается через кабель FTDI или от источников питания через имеющиеся выходы (Vcc/RAW).

Leonardo
Leonardo внешне выглядит как классическая UNO. Но так ли это на самом деле? Чем отличается классическая Arduino UNO от Arduino Leonardo? Давайте разбираться в этом.
Во-первых, типом используемого микроконтроллера. На Леонардо установлен ATMEGA32U4. Его отличительной особенностью является наличие встроенного USB контроллера.
Во-вторых, у платы 20 цифровых входов / выходов, что на 6 больше, чем у классической УНО, а также на четыре больше аналоговых (12 входов / выходов).
В-третьих, полностью переработана схематика платы. Это связано и с меньшими размерами основного МК и с отказом от внешнего UART-контроллера.
В-четвертых, заменен USB вход с типа-А на более популярный MicroUSB.
В-пятых, Leonardo длиннее на 5 мм.
При всем при этом, расположение контактов аналогично, что позволяет использовать на Леонардо любые шилды, совместимые с Уно.

Arduino-совместимые контроллеры
Аналоги Ардуино получили широкое распространение по всему миру. Их не стоит бояться или специально игнорировать. Основной причиной популярности таких устройств является цена. Она минимум в пять раз ниже чем у оригинального устройства. Причинами этого является:
- оптимизация электрической схемы;
- дешевое производство;
- низкая стоимость комплектующих;
- массовое поточное производство.

Часто не специалисту сложно различить оригинальную модель и аналог. Это и не удивительно – китайское производство находится на очень высоком уровне. Поэтому вы не столкнетесь с проблемами подключения, программирования или эксплуатации устройства. Даже расположение и последовательность пинов не отличается. Это позволяет, при необходимости, легко заменить оригинальную плату производителя на аналог и обратно.



Специализированные модели
Для управления роботизированными устройствами необходимы специальные модули-драйверы. Однако они существенно увеличивают габариты и перекрывают доступ к другим разъемам. Поэтому были разработаны специализированные контроллеры с выходами для подключения шаговых двигателей, например, серия UNO PRO. Старшая модель этой серии также оснащена встроенным Bluetooth модулем для дистанционного управления.

Микроконтроллеры ESP
Микрокомпьютеры на базе ESP – следующий уровень проектирования устройств. Плата-контроллер строится на базе процессоров ESP8266 с частотой 80 МГц или ESP32 имеющей рабочие частоты от 80 до 240 МГц. Микрочипы ESP имеют встроенный модуль Bluetooth, увеличенную флеш-память, а также другой дополнительный функционал.
Программирование их может осуществляться аналогично Arduino-платам, через специализированную IDE. При этом, ряд моделей имеют типоразмер и распиновку, схожую с устройствами, построенными на базе чипов ATmega.

Порядок работы и первые шаги
Подключение Arduino
Управление и обмен данными с Ардуино осуществляется через последовательный (serial) порт, он же – разъем USB. Контроллер подключается к компьютеру с помощью обычного USB-кабеля. При этом на нем загораются светодиодные индикаторы, свидетельствующие о подаче питания и начальном обмене данных.

Windows может сразу не обнаружить ваше устройство. В этом случае следует предварительно установить драйверы. Они могут идти в комплекте к плате (на компакт-диске) или же можно скачать их по первой попавшейся ссылке из поисковика. Также драйвер установится в процессе инсталляции среды программирования.
Программирование
Для программирования Ардуино-совместимого контроллера необходима интегрированная среда разработки (IDE – Integrated Development Environment). Чаще всего используется ArduinoIDE. Данная среда поддерживает множество как оригинальных, так и неоригинальных плат, является бесплатной, а также непрерывно совершенствуется разработчиками. Помимо ArduinoIDE, есть и другое программное обеспечение (ПО), например, Scratch, Snap4Arduino, XOD, Ardublock, mBlock, а также другие.

На данный момент актуальная версия среды ArduinoIDE – 2.0.0. Перед скачиванием можно выбрать операционную среду (Windows, Linux или macOS), а также ее разрядность. После того как файл будет скачен, запустите его и следуйте рекомендациям установщика.
Чтобы начать работать с платой «Arduino», при первом запуске программы, необходимо выбрать модель программируемого контролера, с которым будет производиться работа, например, «Arduino UNO». После этого можно начать написание проекта.

Среда программирования уже имеет базу типовых программ (скетчей) с подробным описанием работы. Для этого можно воспользоваться вкладкой «Примеры» и выбрать подходящий скетч. После выбора, то откроется программный код, который в случае необходимости можно проверить на ошибки, отредактировать или дополнить.

После проверки и компиляции программный код загружается на контроллер, на котором загораются светодиодные индикаторы, свидетельствующие об исправной работе платы.
Документация
Если нужно найти техническую документацию на программируемый контроллер, то это можно сделать на официальном сайте компании https://www.arduino.cc/. Для этого достаточно зайти во вкладку «Product» и выбрать нужную модель контроллера. На сайте документация представлена в полном объеме, включая электрические схемы, что позволяет разобраться, в функционировании контроллера, а также назначении тех или иных контактов.
Примеры решений и техническую помощь нужно искать на специализированных форумах. Найти их несложно через любую поисковую систему.
Какая Arduino лучше?
Можно точно сказать, что для начинающих конструкторов лучшим решением всегда будет плата Arduino UNO. Несмотря на то, что она считается одной из самых бюджетных, ее функционал достаточен для реализации большинства проектов. UNO входит во многие наборы конструкторов, позволяющих легко приступить к изучению принципов электроники и основ робототехники. УНО абсолютно стандартная, а также одна из самых популярных плат, можно сказать, что она является «лицом» компании «Arduino».

Выбирая модель, прежде всего, следует обратить внимание на технические характеристики, а именно:
- на базе какого микроконтроллера создана плата. От этого будет зависеть скорость ее работы и производительность;
- номиналы входного и выходного напряжения платы влияют на возможность присоединения модулей;
- количество и вид входов/выходов на прямую влияет на количество присоединяемых устройств;
- объем флеш-памяти важен при написании больших программ и обработке массива данных;
- размер платы актуален при конструировании миниатюрных проектов.
Таблица сравнения плат Ардуино
Для большего удобства выбора мы свели основные характеристики контроллеров, предлагаемых нашей компанией, в единую таблицу. Надеемся, она поможет вам с выбором необходимого устройства.
Наименование | Микроконтроллер | Рабочая частота | Флэш память | Объём ОЗУ | Объём ПЗУ | U раб | U пит | Цифровые входы/выходы |
---|---|---|---|---|---|---|---|---|
DDcduino DUE 2012 R3 | AT91SAM3X8EA | 84 МГц | 512 КБ | 96 КБ | - | 3,3 В | 7-12 В | 54 |
DDcduino MEGA2560 R3 | ATMEGA2560-16AU | 16 МГц | 256 КБ | 8 КБ | 4 КБ | 5 В | 6-20 В | 54 |
UNO PRO M4 | ATMEGA328P | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 3,3/5 В | 3-12 В | 14 |
LY-F2 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-9 В | 14 |
UNO PRO 2M | ATMEGA328P | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 3,3/5 В | 3-12 В | 14 |
DDcduino Nano V3.0 | ATMEGA328P-AU | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 14 |
UNO R3 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 14 |
Leonardo R3 | ATMEGA32U4 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 20 |
Arduino Nano V3.0 | ATMEGA328P-AU | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 14 |
XTWduino UNO R3 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 5-9 В | 14 |
DDcduino Pro mini | ATmega328P | 16 МГц | 16 КБ | 1 КБ | 0,5 КБ | 5 В | 5-12 В | 14 |
Pro mini | ATMEGA168P | 16 МГц | 16 КБ | 1 КБ | 0,5 КБ | 5 В | 5-12 В | 14 |
Nano V3.0 | ATMEGA168P | 16 МГц | 16 КБ | 1 КБ | 0,5 КБ | 5 В | 5-12 В | 14 |
ZYduino UNO R3 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-9 В | 14 |