Arduino – это программно-аппаратная платформа с открытым исходным кодом, позволяющая разрабатывать различные интерактивные проекты (системы автоматики, робототехника, умный дом и прочее) и ориентированная на непрофессиональных электронщиков. Популярность платформы Arduino обусловлена, в первую очередь, невысоким порогом вхождения. Новичок без знаний схемотехники может за пару часов освоить основы и написать свою первую программу. Также платформа Arduino имеет большое сообщество в интернете, которое постоянно публикует различные статьи, ведет тематические блоги, снимает различные видеоуроки (в том числе и на русском языке).
Программирование ведется полностью через собственную среду разработки - Arduino IDE. Среда имеет сборки для Windows, Mac OS и Linux. Инсталлятор можно бесплатно загрузить с официального сайта Arduino. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Программы для Arduino называются набросками (или скетчами — от англ. sketch) и сохраняются в файлах с расширением .ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
Платы Arduino продаются как официальным производителем, так и сторонними производителями. Открытость платформы способствовала появлению большого количества различных вариаций платы, одни из которых являются просто клонами, другие отличаются и функционалом. Под торговой маркой Arduino выпускается несколько плат с микроконтроллером (англ. boards) и платы расширения (так называемые шилды — от англ. shields). Платы имеют минимально необходимую обвзяку для стабильной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).
Микроконтроллеры в платах Arduino имеют предварительно прошитый в них загрузчик (bootloader), с помощью которого пользователь загружает свою программу в микроконтроллер без использования отдельного программатора. Загрузчик соединяется с компьютером через интерфейс USB (при наличии на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и не требует от пользователя каких-либо настроек. На случай затирания загрузчика или покупки нового микроконтроллера (т.е. без загрузчика) среда Arduino IDE позволяет самостоятельно прошить загрузчик в микроконтроллер. Для этого в оболочку встроена поддержка нескольких популярных программаторов, а многие платы Arduino имеют на борту штыревой разъем для внутрисхемного программирования (ICSP для AVR и JTAG для ARM). В комплекте Arduino IDE также имеется большое количество различных примеров программ.
Сторонние производители выпускают большое количество различных датчиков, исполнительных устройств и прочих модулей, подключаемых к Arduino. Например, термометры, гигрометры, анализаторы газов, гироскопы, акселерометры, компасы, манометры, релейные модули, драйвера двигателей, индикаторы, клавиатуры и т. п. В виде шилдов реализованы платы интерфейса Ethernet, работы с SD-картами, модули GPS/ГЛОНАСС, модули GSM и некоторые другие. Многие шилды соединяются с платой Arduino по принципу бутерброда, что позволяет сократить количество проводов и уменьшить габариты конструкции.
Таким образом, платформа Arduino позволяет разрабатывать и собирать полноценные устройства, используя только макетную плату (breadboard), перемычки, провода и различные модули. А благодаря большому сообществу пользователей, в интернете можно найти библиотеки для работы практически с любым модулем для Arduino, что позволяет упростить процесс написания программы и уменьшить общее время на разработку устройства.
Простейшая программа
Простейшая Arduino-программа состоит из двух функций:
- setup() – функция вызывается однократно при старте микроконтроллера.
- loop() – функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.
Один из простейших проектов на Arduino — это мигание светодиодом. Ниже представлен текст простейшей программы (скетча) мигания светодиодом, подключенного к 13 выводу Arduino. Период мигания светодиода – 2 секунды.
void setup () {
pinMode (13, OUTPUT); // настройка 13 вывода Arduino на вывод
}
void loop () {
digitalWrite (13, HIGH); // включение 13 вывода, параметр HIGH - высокий логический уровень
delay (1000); // задержка на 1000 мс - 1 секунду
digitalWrite (13, LOW); // выключение 13 вывода, параметр LOW - низкий логический уровень
delay (1000); // задержка на 1 секунду
}
Внешний вид и электрические схемы различных плат Arduino
Arduino Uno | Arduino Nano | Arduino Mega 2560 |
---|---|---|
![]() |
![]() |
![]() |
Схема | Схема | Схема |