Blink — мигание светодиодом на Arduino
Классический первый урок Arduino: заставляем встроенный светодиод мигать раз в секунду с помощью digitalWrite() и delay().
Это самый первый и самый известный пример для Arduino — мигающий светодиод. Именно с него начинают знакомство с платформой, потому что он наглядно показывает: плата работает, код загружается, физический мир реагирует на команды программы.
Необходимое оборудование
Дополнительно (для внешнего светодиода):
- Светодиод (LED)
- Резистор 220 Ом
Схема подключения
В этом примере используется встроенный светодиод, который есть на большинстве плат Arduino. Он подключён к одному из цифровых пинов, и номер этого пина отличается от платы к плате. Чтобы не запоминать конкретный номер, в Arduino IDE введена специальная константа LED_BUILTIN — она автоматически подставляет правильный пин для той платы, которую вы выбрали в меню. Вот соответствие константы и пина для разных плат:
- D13 — 101
- D13 — Due
- D1 — Gemma
- D13 — Intel Edison
- D13 — Intel Galileo Gen2
- D13 — Leonardo и Micro
- D13 — LilyPad
- D13 — LilyPad USB
- D13 — MEGA2560
- D13 — Mini
- D6 — MKR1000
- D13 — Nano
- D13 — Pro
- D13 — Pro Mini
- D13 — UNO
- D13 — Yún
- D13 — Zero
Если хотите подключить внешний светодиод, соберите схему ниже. Один конец резистора подключите к цифровому пину, соответствующему константе LED_BUILTIN. К другому концу резистора подключите длинную ножку светодиода — это анод, положительный вывод. Короткую ножку (катод, отрицательный вывод) соедините с GND. На схеме показана плата UNO, у которой значение LED_BUILTIN равно D13.
Почему нужен резистор? Резистор ограничивает ток через светодиод и защищает и сам светодиод, и выходной пин Arduino от перегрева и выхода из строя. Номинал подбирается по закону Ома (V = I × R): из напряжения питания (5 В или 3,3 В) вычитается прямое напряжение светодиода (для красного — обычно 1,8–2,2 В), и результат делится на желаемый ток. Резистор 220 Ом — хороший универсальный выбор для пятивольтовых плат: светодиод светит достаточно ярко и при этом ток остаётся в безопасных пределах. Для плат с питанием 5 В светодиод будет хорошо виден при сопротивлении вплоть до 1 кОм — можно регулировать яркость, меняя номинал резистора.

Схема подключения: светодиод и резистор на макетной плате, соединённые с пином 13 и GND платы Arduino UNO.
Принципиальная схема

Принципиальная схема урока Blink: Arduino UNO соединён с резистором 220 Ом и светодиодом (LED) последовательно между пином 13 и GND. На схеме подпись компонента — РЕЗИСТОР 220 Ом.
Код
Соберите схему, подключите плату Arduino к компьютеру через USB, откройте Arduino IDE и введите код ниже. Также его можно открыть через меню File → Examples → 01.Basics → Blink.
Разберём, что происходит в программе.
Первым делом в setup() пин встроенного светодиода объявляется как выход:
pinMode(LED_BUILTIN, OUTPUT);
Без этой строки пин остаётся в режиме входа и светодиод не будет реагировать на команды.
В основном цикле loop() светодиод включается командой:
digitalWrite(LED_BUILTIN, HIGH);
Это подаёт 5 вольт на анод светодиода, создаёт разность потенциалов — и светодиод загорается.
Затем светодиод выключается:
digitalWrite(LED_BUILTIN, LOW);
Пин возвращается в состояние 0 вольт, ток прекращается, светодиод гаснет.
Между включением и выключением стоят команды delay() — они заставляют плату «ждать» 1000 миллисекунд (одну секунду), ничего не делая. Именно эта пауза даёт нам видимое мигание.
Важно понимать: пока выполняется delay(), никакой другой код не работает. Для простого мигания это нормально, но если нужно одновременно делать что-то ещё — изучите пример BlinkWithoutDelay: он показывает, как организовать задержку без блокировки программы.
Когда освоите этот пример, переходите к DigitalReadSerial — там разбирается, как считывать состояние кнопки, подключённой к плате.
Как проверить результат
После загрузки кода встроенный светодиод (обычно помечен на плате как L или ON) должен начать мигать с интервалом одна секунда: секунду горит, секунду не горит. Если вы подключили внешний светодиод — он будет мигать синхронно со встроенным.
Типичные ошибки
- Светодиод не мигает, а просто горит или не горит — скорее всего, код не загрузился. Проверьте, правильно ли выбрана плата и порт в меню Tools.
- Внешний светодиод не светится — убедитесь, что анод (длинная ножка) подключён через резистор к пину, а катод (короткая ножка) — к
GND. Светодиод, вставленный наоборот, работать не будет. - Забыли резистор — светодиод может сгореть, а пин Arduino — повредиться. Резистор обязателен при работе с внешним светодиодом.
- Используете константу
13вместоLED_BUILTIN— код будет работать только на UNO и совместимых платах. ИспользуйтеLED_BUILTINдля переносимости.
См. также
Дополнительные материалы
Больше базовых уроков можно найти в разделе built-in examples.
Также рекомендуем изучить language reference — подробный справочник по языку программирования Arduino.
Последнее обновление: 28.07.2015, SM