Структура и алгоритм программы Arduino

Скетч программы ArduinoВ этой статье по программированию Arduino мы рассмотрим базовую структуру скетча Arduino, а также выполнение команд программы сверху вниз.

Структура программы Arduino

Базовый скетч Arduino состоит из двух функций, называемых setup () и loop () .

Откройте IDE Arduino и выберите ФайлПримеры01.BasicsBareMinimum, чтобы увидеть две функции. Эти две функции теперь появляются в новом окне IDE Arduino по умолчанию, поэтому нет необходимости открывать пример программы BareMinimum после скачивания в новой версии IDE.

Базовая структура программы
Базовая структура программы Arduino

Что такое функция?

Подробнее о функциях мы поговорим позже, а пока вам просто нужно знать следующее о функциях:

  • Все функции должны иметь уникальное имя, setup — это один из примеров уникального имени функции ( setup (настройка) и loop (цикл) являются специальными функциями в программировании Arduino и являются частью структуры базового скетча).
  • За именем функции следуют открывающая и закрывающая круглые скобки (), которые могут что-то содержать, а могут и не содержать.
  • Все функции должны иметь возвращаемый тип. И setup, и loop имеют тип возвращаемого значения void.
  • Тело функции состоит из открывающей и закрывающей скобок ( { и } ).

«Привет мир!» Пример скетча

Это традиция программирования — писать программу «Привет, мир» всякий раз, когда начинаешь изучать новый язык программирования.

Программа «Hello, world» просто пишет текст «Hello, world!» на экране. Цель этой программы — убедиться, что ваша среда программирования правильно установлена ​​и также правильно работает. Если ваша программа «Hello, world» работает, то вы точно готовы приступить к изучению нового языка программирования.

У Arduino нет экрана для вывода записи текста «hello world», но мы можем использовать порт USB и окно в меню Монитор порта.

Написание скетча

Измените ранее открытый скетч BareMinimum следующим образом:

Сохраните измененную программу как hello_world в папке со скетчами, выбрав ФайлСохранить как… в меню Arduino IDE, а затем переименовав файл в hello_world.

Запуск скетча

Подключите Arduino к компьютеру с помощью USB-кабеля. Нажмите кнопку «Загрузить», чтобы загрузить программу в Arduino.

Теперь откройте окно Монитор порта IDE Arduino, чтобы увидеть выполнение скетча и текстовое сообщение.

Результат запуска скетча должен выглядеть следующим образом:

Запуск скетча hello_world
Запуск скетча hello_world

Текстовое сообщение, которое выводит программа, должно быть видно в окне Монитор порта.

Поиск ошибок программирования

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

Ошибка компиляции появится в нижней части Arduino IDE, как показано на изображении ниже.

Ошибка компиляции
Ошибка компиляции Arduino IDE

В этом примере точка с запятой ( ; ) была оставлена ​​в конце этой строки: Serial.println(«Hello, world!»), из-за чего IDE Arduino отображала сообщение об ошибке.

Если у вас возникли проблемы с загрузкой скетча в Arduino, убедитесь, что в меню ИнструментыПлата, выбрана правильная плата Arduino, а в ИнструментыМонитор порта выбран именно он.

Если скетч загружен успешно, то единственная проблема, которая может помешать отображению текста в окне Монитор порта, заключается в том, что скорость передачи в правом нижнем углу окна не установлена ​​на 9600, как показано на изображении выше.

Последовательность выполнения программы Arduino

В скетче Arduino, операторы программы (отдельные строки кода), выполняются сверху вниз. Это выполнение операторов сверху вниз может быть изменено только операторами управления потоком.

На изображении ниже показаны части скетча 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 (), чтобы увидеть, как она работает.

С Уважением, МониторБанк

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *