Первая программа на микроконтроллере Arduino

Что такое Arduino?

Arduino — это аппаратная и программная платформа для простой разработки электроники и обучения программированию. Аппаратная часть включает в себя большое количество разновидностей плат Arduino и дополнительные модули, а программная часть состоит из среды разработки Arduino IDE — программы для написания скетчей и прошивки микроконтроллеров Arduino. Также, для упрощения разработки, имеется возможность подключения готовых библиотек.

Начало работы с Arduino

Прежде всего, вам потребуется приобрести плату Arduino. На сегодняшний день существует множество видов плат под любые задачи. Например:

Arduino Uno

Наибольшее распространение получила плата Arduino Uno. Она имеет 14 дискретных (цифровых) каналов ввода/вывода, а также 6 аналоговых. К слову, данная плата является одной из самых дешевых.

Arduino Mega 2560

Arduino Mega 2560 немного больше Arduino Uno. Она имеет значительно большее количество каналов ввода/вывода: 54 цифровых и 16 аналоговых. На плате разведены 4 аппаратных UART порта, что делает ее идеальной платформой для коммуникации с несколькими устройствами одновременно.

Arduino Nano

Arduino Nano — это, размещённый на миниатюрной плате, функциональный аналог Arduino Uno. Arduino Nano используется там, где важна компактность. Ее размеры (без USB разъема) всего 42 мм в длину и 19 мм в ширину.

Среда разработки Arduino IDE:

Для того, чтобы программировать и прошивать платы Arduino нам потребуется официальная среда разработки — Arduino IDE. Переходим по ссылке и скачиваем установщик под свою операционную систему, а затем запускаем его. Далее, после стандартного процесса установки, среда разработки готова к работе.

Программирование Arduino:

Плата Arduino исполняет программы на языке, основанном на C++, поэтому, имея опыт работы с ним, программирование платы не составит для вас большого труда. Давайте разберем программу для мигания светодиодом — Blink.

Первым делом, открываем установленную среду разработки Arduino IDE, нажимаем «Файл», затем «Примеры», «01. Basics» и «Blink». На экране откроется программа мигания светодиодом.

Для начала, подключите плату к компьютеру. Затем, в меню «Инструменты» > «Порт» выберите порт к которому подключена ваша плата (рядом с его номером указано название платы). Например, в моем случае, это плата Arduino Uno на 17 порту.

После выбора порта загрузите программу (нажав на зеленую стрелочку) и посмотрите на плату. Если программа успешно загрузилась, то, вы увидите, что светодиод на плате Arduino мигает с частотой в 1 секунду.

А теперь давайте разберемся и поймем, как работает программа управляющая светодиодом.

Для начала, обратим внимание на то, что часть кода написана серым цветом — это комментарии, они не исполняются платой и нужны для пояснения.

Существуют два способа добавить комментарий. Первый способ позволяет закомментировать одну строку, используя символы «//»:

// комментарий

Второй способ позволяет закомментировать сразу несколько строк. Для этого используются символы «/*» и «*/»:

/*
Комментарий
на
несколько
строк.
*/

В программе отчетливо выделяются два блока — void setup() и void loop():

void setup() {
//Команды выполняются только один раз.
}
void loop() {
//Команды выполняются бесконечно, до отключения питания платы.
}

Setup переводится как «настройка», а Loop как «цикл». Команды блока void setup() выполняются только один раз, сразу после запуска контроллера, а команды блока «loop» — бесконечно, до отключения его питания.

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

Мы видим, что внутри void setup() находится только одна команда — pinMode. Давайте переведем эту команду на русский язык. Pin означает «порт», а mode — «режим». Этой командой мы объясняем Arduino, как работать с устройством. Так как мы можем либо посылать сигналы устройству, либо считывать их, то и режимов работы существует всего два: OUTPUT — отправка сигналов и INPUT — прием сигналов.

pinMode(<Пин>, <Режим>);

В данном примере Arduino работает со светодиодом, на него сигналы посылаются, поэтому написано OUTPUT. А LED_BUILTIN в команде pinMode(LED_BUILTIN, OUTPUT) означает, что мы управляем светодиодом, расположенным на плате (вместо этого можно просто указать номер пина — 13).

Перейдем к блоку void loop():

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

В этом блоке описаны действия со светодиодом.

Команда digitalWrite состоит из двух слов: digital — «цифровой» и write — «писать». Значит мы можем перевести эту команду как «цифровая запись».

digitalWrite(LED_BUILTIN, HIGH);

Рассмотрим параметры этой команды. Нам снова встретилась константа LED_BUILTIN, которая, обозначает порт к которому подключен светодиод на плате Arduino. Второй параметр представлен двумя значениями: HIGH и LOW. Переводятся они как «высокий» и «низкий» и включают и выключают светодиод.

digitalWrite(<Пин>, <Сигнал>);

Задержка задается командой delay, которая переводится как «ждать». Команда delay приостанавливает программу на время в миллисекундах, указанное в скобках (1000 миллисекунд = 1 секунде).

delay(1000);

Таким образом, наши команды образуют следующий алгоритм:

  • Включить светодиод на плате;
  • Подождать 1 секунду;
  • Выключить светодиод на плате;
  • Подождать 1 секунду;

А так как эти команды расположены в блоке void loop(), то они будут повторяться, пока на микроконтроллер подается питание.

На этом все, ну а если у вас возникли вопросы — смело пишите их в комментариях)