Разбиваем на вкладки
Меню вкладок
Система вкладок в Arduino IDE работает крайне необычным образом и очень отличается от понятия вкладок в других программах. Вкладки относятся к файлам, находящимся в одной папке со скетчем, и тут есть два варианта:
Внешние файлы
- Это самостоятельные, не связанные со скетчем файлы (библиотеки). Могут иметь расширения .h, .cpp, .c.
- Данные файлы не участвуют в компиляции и работе программы, пока не будут подключены в основном скетче через
#include
. - Другими словами работают так, как в других средах разработки.
Файлы скетча
- Имеют расширение .ino (в актуальных версиях IDE) или .pde (в старых версиях).
- Появляются рядом с основным файлом скетча при создании новой вкладки через меню вкладок.
- Вкладки разбивают общий код на части, а при компиляции просто объединяются в один текст по порядку слева направо. То есть в одной вкладке фигурная скобка
{
может открыться, а в следующей – закрыться}
. - Такие вкладки нужны для того, чтобы визуально разделить программу на части.
- Также это означает, что вкладки должны содержать код, относящийся только к этому проекту: в разных вкладках не могут быть объявлены переменные или функции с одинаковыми именами, это приведёт к ошибке.
- Вкладки автоматически располагаются в алфавитном порядке, поэтому создаваемая вкладка может оказаться между другими уже существующими. Это означает, что разбивать блоки кода по разным вкладкам крайне не рекомендуется.
- Не забываем, что переменная должна быть объявлена до своего вызова, то есть вкладка с объявлением переменной должна быть левее вкладки, где переменная вызывается. Создавая новую вкладку нужно сразу думать, где она появится с таким именем и не будет ли из за этого проблем.
- Во избежание проблем с переменными, все глобальные переменные лучше объявлять в самой первой вкладке.
- Названия вкладок можно начинать с цифр или букв по порядку и таким образом точно контролировать их расположение.
- При запуске любой вкладки откроется весь проект со всеми вкладками.
Рекомендации
Вкладки - зло, лучше к ним не привыкать и учиться правильно разбивать программу на отдельные файлы. Да, в большинстве случаев программа усложнится и в ней появится больше кода, но это будет более правильно. Вкладки же - ещё один "подарок" от Arduino, ускоряющий написание программы. Как ими пользоваться в большом проекте, чтобы ничего не сломалось?
- В главном файле скетча располагаем все настройки, подключаем библиотеки, объявляем глобальные переменные. Здесь же оставляем блоки
setup()
иloop()
. - Остальной код пакуем в функции (урок по функциям) и располагаем в остальных вкладках, группируя по смыслу.
Главный файл скетча
#include <библиотека> #include <библиотека> #include <библиотека> // всякие переменные void setup() { readEEPROM(); } void loop() { effects(); button(); }
Вкладка "эффекты"
void effects() { // куча кода }
Вкладка "обработка кнопки"
void button() { // куча кода }
Вкладка "чтение настроек"
void readEEPROM() { // куча кода }
Полезные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])