Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right Основы chevron_right Bare Minimum: минимальная структура скетча Arduino

Bare Minimum: минимальная структура скетча Arduino

Минимально необходимый код для корректной компиляции скетча в Arduino IDE: функции setup() и loop().

Каждый скетч Arduino должен содержать хотя бы две функции — setup() и loop(). Без них IDE просто не скомпилирует программу. Этот урок показывает именно такой минимум: ничего лишнего, только каркас, от которого отталкивается любой проект.

Необходимое оборудование

Схема подключения

Для этого примера достаточно одной платы Arduino — никаких внешних компонентов не нужно.

Плата Arduino UNO без внешних подключений — минимальная схема для урока «Bare Minimum».

Как это работает

Программа на Arduino всегда выполняется в двух «режимах»:

  1. Инициализация — функция setup() запускается один раз сразу после подачи питания или нажатия кнопки Reset. Здесь принято задавать режимы пинов (pinMode), инициализировать библиотеки, устанавливать начальные значения переменных.
  1. Основной цикл — после того как setup() завершила работу, микроконтроллер переходит в loop() и крутится в нём бесконечно. Именно здесь живёт вся логика программы: опрос датчиков, управление моторами, отправка данных и всё остальное.

Пока плата включена, loop() не останавливается — она повторяется снова и снова, пока не отключится питание или не произойдёт сброс.

Код

Приведённый ниже скетч ничего не делает сам по себе, зато это идеальная заготовка для копирования в начало любого нового проекта. Обратите внимание на комментарии: любая строка, начинающаяся с //, игнорируется компилятором. Комментарии можно писать на отдельной строке или добавлять в конец рабочей строки кода — это никак не влияет на выполнение программы, зато очень помогает разобраться в логике спустя время.

Практические замечания

  • Если удалить хотя бы одну из двух функций, компилятор выдаст ошибку. Это намеренное ограничение платформы.
  • setup() и loop() должны присутствовать даже если они пустые — как в примере выше.
  • Хорошая привычка — сразу писать в setup() Serial.begin(9600), если планируете отлаживать код через монитор порта.
  • Комментируйте код с первых строк: через неделю вы сами скажете себе спасибо.

Типичные ошибки

  • Опечатка в имени функцииSetup() или Loop() с заглавной буквы не являются служебными функциями Arduino и не будут вызваны автоматически. Используйте строчные буквы: setup() и loop().
  • Отсутствие фигурных скобок — каждая функция обязана иметь открывающую { и закрывающую } скобку, даже если тело пустое.
  • Код вне функций — объявления переменных можно писать вне функций (глобальные переменные), но исполняемые инструкции должны находиться внутри setup(), loop() или других функций.

Узнать больше

Дополнительные базовые примеры собраны в разделе built-in examples.

Полное описание всех функций и конструкций языка доступно в language reference.

Последнее обновление: 28.07.2015, SM