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

Плата Arduino UNO без внешних подключений — минимальная схема для урока «Bare Minimum».
Как это работает
Программа на Arduino всегда выполняется в двух «режимах»:
- Инициализация — функция
setup()запускается один раз сразу после подачи питания или нажатия кнопки Reset. Здесь принято задавать режимы пинов (pinMode), инициализировать библиотеки, устанавливать начальные значения переменных.
- Основной цикл — после того как
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