#include
#include подключает библиотеки и заголовочные файлы к скетчу: <LibraryFile.h> — для установленных библиотек, "LocalFile.h" — для локальных файлов рядом со скетчем.
Полная статья
Описание
#include — это директива препроцессора, которая подключает к скетчу внешние библиотеки или заголовочные файлы. Именно благодаря ей вы можете использовать готовые функции: стандартные библиотеки языка C, библиотеки для работы с оборудованием (дисплеи, датчики, моторы) и любые другие, написанные специально для Arduino.
Важный момент: #include — это директива препроцессора, а не инструкция языка. В конце строки не ставится точка с запятой. Если добавить ;, компилятор выдаст запутанное сообщение об ошибке, которое на первый взгляд никак не связано с этой строкой.
Синтаксис
#include <LibraryFile.h>#include "LocalFile.h"
Параметры
LibraryFile.h: угловые скобки указывают компилятору искать файл в стандартных путях библиотек Arduino IDE. Используйте этот вариант для установленных библиотек.LocalFile.h: двойные кавычки сначала ищут файл в папке самого скетча, и только если не находят — переходят к путям библиотек. Используйте этот синтаксис для собственных заголовочных файлов, которые лежат рядом со скетчем.
Пример кода
Этот пример подключает библиотеку Servo, после чего в скетче становятся доступны все её функции для управления серводвигателем.
#include <Servo.h>
Servo myservo; // создаём объект servo для управления сервоприводом
void setup() {
myservo.attach(9); // подключаем сервопривод на pin 9 к объекту servo
}
void loop() {
for (int pos = 0; pos <= 180; pos += 1) { // поворот от 0 до 180 градусов
// с шагом 1 градус
myservo.write(pos); // отправляем сервопривод в позицию, заданную переменной 'pos'
delay(15); // ждём 15ms, пока сервопривод достигнет позиции
}
for (int pos = 180; pos >= 0; pos -= 1) { // поворот от 180 до 0 градусов
myservo.write(pos); // отправляем сервопривод в позицию, заданную переменной 'pos'
delay(15); // ждём 15ms, пока сервопривод достигнет позиции
}
}
Где применяется
- Подключение библиотеки для работы с дисплеем (например,
LiquidCrystalилиAdafruit_SSD1306). - Работа с датчиками, у которых есть своя библиотека: DHT, MPU6050, DS18B20.
- Использование стандартных возможностей C: математических функций (
math.h), работы со строками (string.h). - Разбиение большого проекта на несколько файлов: общий заголовочный файл подключается через двойные кавычки.
Практические замечания
- Директивы
#includeпринято размещать в самом начале скетча, доsetup()иloop(). - Если библиотека не установлена в Arduino IDE, компилятор сообщит, что файл не найден. Установите её через меню Инструменты → Управление библиотеками.
- Угловые скобки (
<LibraryFile.h>) и двойные кавычки ("LocalFile.h") — не взаимозаменяемы в общем случае: перепутав их, вы рискуете получить ошибку «файл не найден», даже если библиотека установлена. - Подключение лишних библиотек увеличивает размер скомпилированного скетча. Включайте только то, что реально используется.
- Если после подключения библиотеки появились конфликты имён или неожиданное поведение, проверьте, не определяет ли она глобальные переменные или макросы, совпадающие с вашими.