#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") — не взаимозаменяемы в общем случае: перепутав их, вы рискуете получить ошибку «файл не найден», даже если библиотека установлена.
  • Подключение лишних библиотек увеличивает размер скомпилированного скетча. Включайте только то, что реально используется.
  • Если после подключения библиотеки появились конфликты имён или неожиданное поведение, проверьте, не определяет ли она глобальные переменные или макросы, совпадающие с вашими.

Полезные материалы