Главная chevron_right Переменные и константы chevron_right Константы chevron_right LED_BUILTIN

LED_BUILTIN

Константа LED_BUILTIN хранит номер вывода встроенного светодиода платы — используйте её вместо 13, чтобы скетч работал корректно на любой плате.

Полная статья

Описание

LED_BUILTIN — это константа, которая хранит номер цифрового вывода, соединённого со встроенным светодиодом платы. Она определена в ядре Arduino для каждой поддерживаемой платы, поэтому вам не нужно знать конкретный номер вывода заранее.

На большинстве классических плат, например Arduino Uno, встроенный светодиод подключён к выводу 13. Однако это не универсальное правило: на других платах номер может отличаться. Если вы напишете в коде просто 13, скетч может не работать на другой плате или, хуже, управлять совсем не тем выводом. Использование LED_BUILTIN решает эту проблему: код остаётся корректным вне зависимости от того, на какой плате он запущен.

Помимо переносимости, LED_BUILTIN делает код более читаемым — сразу понятно, что речь идёт именно о встроенном светодиоде, а не о каком-то произвольном выводе.

Где применяется

  • Быстрая проверка работоспособности платы без внешних компонентов.
  • Индикация состояния программы: мигание при ошибке, ожидании или завершении задачи.
  • Учебные скетчи и примеры, которые должны работать на разных платах без изменений.
  • Отладка: мигание встроенным светодиодом как альтернатива выводу в Serial Monitor, когда порт недоступен.

Пример кода

    void setup() {
      pinMode(LED_BUILTIN, OUTPUT);
    }

    void loop() {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(1000);
      digitalWrite(LED_BUILTIN, LOW);
      delay(1000);
    }

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

  • LED_BUILTIN определяется в ядре платы автоматически — вам не нужно объявлять или задавать это значение вручную.
  • Если вы пишете скетч, который должен работать на нескольких разных платах, всегда используйте LED_BUILTIN вместо числового литерала 13.
  • Встроенный светодиод — пассивный компонент платы, резистор уже включён в схему. Для внешнего светодиода, подключённого к любому другому выводу, токоограничивающий резистор нужно добавлять самостоятельно.
  • На некоторых платах встроенный светодиод подключён к выводу, который одновременно используется для SPI или другого интерфейса. Если вы задействуете такой интерфейс, светодиод может мигать сам по себе — это нормальное поведение, а не ошибка.
  • Если плата не имеет встроенного светодиода, LED_BUILTIN может быть не определена или указывать на несуществующий вывод. В таком случае вызов pinMode и digitalWrite с этим значением не приведёт к видимому результату, но и ошибки компиляции не вызовет.

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