В этой статье по программированию Arduino мы рассмотрим базовую структуру скетча Arduino, а также выполнение команд программы сверху вниз.
Структура программы Arduino
Базовый скетч Arduino состоит из двух функций, называемых setup () и loop () .
Откройте IDE Arduino и выберите Файл → Примеры → 01.Basics → BareMinimum, чтобы увидеть две функции. Эти две функции теперь появляются в новом окне IDE Arduino по умолчанию, поэтому нет необходимости открывать пример программы BareMinimum после скачивания в новой версии IDE.

Что такое функция?
Подробнее о функциях мы поговорим позже, а пока вам просто нужно знать следующее о функциях:
- Все функции должны иметь уникальное имя, setup — это один из примеров уникального имени функции ( setup (настройка) и loop (цикл) являются специальными функциями в программировании Arduino и являются частью структуры базового скетча).
- За именем функции следуют открывающая и закрывающая круглые скобки (), которые могут что-то содержать, а могут и не содержать.
- Все функции должны иметь возвращаемый тип. И setup, и loop имеют тип возвращаемого значения void.
- Тело функции состоит из открывающей и закрывающей скобок ( { и } ).
«Привет мир!» Пример скетча
Это традиция программирования — писать программу «Привет, мир» всякий раз, когда начинаешь изучать новый язык программирования.
Программа «Hello, world» просто пишет текст «Hello, world!» на экране. Цель этой программы — убедиться, что ваша среда программирования правильно установлена и также правильно работает. Если ваша программа «Hello, world» работает, то вы точно готовы приступить к изучению нового языка программирования.
У Arduino нет экрана для вывода записи текста «hello world», но мы можем использовать порт USB и окно в меню Монитор порта.
Написание скетча
Измените ранее открытый скетч BareMinimum следующим образом:
1 2 3 4 5 6 7 |
void setup () { Последовательный . begin (9600); Серийный . println ( "Hello, world!" ); } void loop () { } |
Сохраните измененную программу как hello_world в папке со скетчами, выбрав Файл → Сохранить как… в меню Arduino IDE, а затем переименовав файл в hello_world.
Запуск скетча
Подключите Arduino к компьютеру с помощью USB-кабеля. Нажмите кнопку «Загрузить», чтобы загрузить программу в Arduino.
Теперь откройте окно Монитор порта IDE Arduino, чтобы увидеть выполнение скетча и текстовое сообщение.
Результат запуска скетча должен выглядеть следующим образом:

Текстовое сообщение, которое выводит программа, должно быть видно в окне Монитор порта.
Поиск ошибок программирования
Все, что в приведенных выше строках кода неправильно введено в окно IDE, скорее всего, вызовет ошибку компиляции, поэтому обязательно введите все в точности так, как показано в приведенном выше коде. Программа компилируется при нажатии кнопки «Проверить» (значок в виде галочки) или кнопки « Загрузить» (значок в виде горизонтальной стрелки).
Ошибка компиляции появится в нижней части Arduino IDE, как показано на изображении ниже.

В этом примере точка с запятой ( ; ) была оставлена в конце этой строки: Serial.println(«Hello, world!»), из-за чего IDE Arduino отображала сообщение об ошибке.
Если у вас возникли проблемы с загрузкой скетча в Arduino, убедитесь, что в меню Инструменты → Плата, выбрана правильная плата Arduino, а в Инструменты → Монитор порта выбран именно он.
Если скетч загружен успешно, то единственная проблема, которая может помешать отображению текста в окне Монитор порта, заключается в том, что скорость передачи в правом нижнем углу окна не установлена на 9600, как показано на изображении выше.
Последовательность выполнения программы Arduino
В скетче Arduino, операторы программы (отдельные строки кода), выполняются сверху вниз. Это выполнение операторов сверху вниз может быть изменено только операторами управления потоком.
На изображении ниже показаны части скетча Arduino. Операторы — это строки кода, которые выполняются во время выполнения программы. Каждый оператор заканчивается точкой с запятой.

Как работает скетч Hello World
В скетче hello world сначала выполняются операторы функции setup () сверху вниз. Объявление Serial.begin (9600); является первым оператором в функции setup (), поэтому он запускается первым. Этот оператор устанавливает скорость Монитор порта на 9600 бод. Настройка скорости в окне монитора порта должна соответствовать этому значению, чтобы Arduino и окно монитора порта могли обмениваться данными с одинаковой скоростью.
Второй оператор, выполняемый в функции setup (), — это Serial.println («Hello, world!»); который отправляет текст Hello, world! из последовательного / USB-порта для отображения в окне Монитор порта. В этом операторе любой текст может быть помещен между открывающимися и закрывающимися кавычками ( «» ), и он будет отображаться в окне Монитор порта.
Функция setup ()
Операторы в функции setup () запускаются только один раз при каждом запуске скетча. Затем программа начинает выполнять операторы функции loop ().
Скетч будет запущен после того, как он будет отправлен в Arduino. Открытие окна Монитор порта перезагрузит Arduino и заставит его снова запустить скетч.
Скетч также можно запустить повторно, нажав кнопку сброса на плате Arduino или отключив от питания, а затем снова подключив питание к Arduino.
Функция loop ()
Операторы в функции loop () будут выполняться непрерывно сверху вниз, а затем обратно вверх.
Если функция loop () содержит два оператора, то будет выполняться первый оператор, затем второй оператор, затем снова первый оператор и так далее в цикле.
Поскольку в нашем примере hello world в функции loop () нет операторов, выполнение программы завершится в цикле и останется там, ничего не делая.
Важно, чтобы в скетче была функция loop (), даже если она пуста, потому что без нее микроконтроллер на плате Arduino будет пытаться выполнить все, что он найдет в памяти, после того, как будут выполнены операторы в функции setup (). Микроконтроллер будет пытаться выполнить все, что он найдет в памяти, как инструкцию, но функция loop () не позволяет ему сделать это, сохраняя выполнение программы в цикле.
В следующей нашей статье мы поместим некоторые программные операторы в функцию loop (), чтобы увидеть, как она работает.
С Уважением, МониторБанк