Введение
Добро пожаловать в мир встраиваемой электроники! Первая программа, которую пишет большинство людей при изучении Arduino, — это скетч Blink. Это «Hello, World!» микроконтроллеров — простой способ убедиться, что ваша плата, код и схема работают вместе. В этом руководстве мы соберем и смоделируем классическую схему мигающего светодиода полностью в вашем браузере с помощью Velxio — браузерного симулятора схем и микроконтроллеров с аналоговой поддержкой точности SPICE. Никакого оборудования не требуется!

Разбор схемы
Наша схема минимальна: нам нужна только плата Arduino Uno и ее встроенный светодиод. На Arduino Uno есть небольшой светодиод, подключенный к цифровому выводу 13, с токоограничивающим резистором, уже установленным на плате. Это означает, что нам не нужны никакие внешние компоненты — только сама плата.
В Velxio вы можете разместить Arduino Uno из панели компонентов. Нажмите кнопку Компоненты на панели инструментов холста, чтобы открыть модальное окно выбора компонентов, затем найдите «Arduino Uno» и перетащите его на холст.

После размещения Arduino Uno появляется на холсте. Встроенный светодиод помечен буквой «L» рядом с выводом 13. Подключение не требуется, так как светодиод уже подключен внутри. Однако, если бы вы хотели использовать внешний светодиод, вы бы подключили его анод (длинную ножку) к выводу 13 через резистор 220 Ом, а катод (короткую ножку) к GND.
Разбор кода
Теперь давайте посмотрим на код, который заставляет светодиод мигать. Откройте редактор кода, нажав кнопку Код на панели инструментов редактора.

Код написан на Arduino C++ и состоит из двух обязательных функций: setup() и loop().
// Blink LED Example
// Toggles the built-in LED on pin 13
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Разберем его по частям:
pinMode(13, OUTPUT);– Вsetup()мы настраиваем цифровой вывод 13 как выход. Это сообщает Arduino, что мы хотим отправлять сигналы из этого вывода, а не считывать сигналы.digitalWrite(13, HIGH);– Устанавливает на выводе 13 напряжение 5 вольт (HIGH), что включает светодиод.delay(1000);– Приостанавливает программу на 1000 миллисекунд (1 секунду).digitalWrite(13, LOW);– Устанавливает на выводе 13 напряжение 0 вольт (LOW), выключая светодиод.delay(1000);– Еще одна пауза на 1 секунду.- Функция
loop()повторяется бесконечно, поэтому светодиод непрерывно мигает.
Запуск симуляции
Чтобы запустить симуляцию, нажмите кнопку Запуск на панели инструментов редактора.

Velxio скомпилирует код и запустит симуляцию. Вы должны увидеть, как встроенный светодиод на холсте Arduino мигает каждую секунду. Вы также можете использовать панель инструментов холста, чтобы приостановить, остановить или сбросить симуляцию.

Ключевые концепции для студентов
- Цифровые выходные выводы: Выводы Arduino можно настроить как входы или выходы. При настройке как OUTPUT вы можете записывать HIGH (5В) или LOW (0В) для управления внешними устройствами, такими как светодиоды.
pinMode(): Всегда устанавливайте режим вывода вsetup(). Забыв это сделать, можно получить неожиданное поведение.digitalWrite(): Отправляет цифровой сигнал (HIGH или LOW) на вывод.delay(): Останавливает выполнение программы на заданное количество миллисекунд. Полезно для синхронизации, но блокирует другие операции.- Встроенный светодиод: На большинстве плат Arduino есть светодиод, подключенный к выводу 13 через последовательный резистор, что упрощает тестирование без дополнительных компонентов.
Распространенные ошибки и советы по отладке
- Неправильный номер вывода: Убедитесь, что вы используете правильный номер вывода. Встроенный светодиод находится на выводе 13, но если вы используете внешний светодиод, перепроверьте подключение.
- Отсутствие
pinMode(): Если вы забудете установить вывод как OUTPUT, светодиод может не загореться. Всегда включайтеpinMode(pin, OUTPUT);вsetup(). - Полярность светодиода: При использовании внешнего светодиода анод (длинная ножка) должен идти к положительной стороне (через резистор), а катод (короткая ножка) к земле. Перестановка не повредит светодиод, но он не загорится.
- Отсутствие резистора: Светодиод без токоограничивающего резистора может потреблять слишком большой ток и повредить вывод или светодиод. Встроенный светодиод уже имеет резистор, но внешним светодиодам он нужен (обычно от 220 Ом до 1 кОм).
- Симуляция не запускается: Убедитесь, что вы нажали кнопку Запуск. Если симуляция приостановлена, нажмите Запуск снова.
Предлагаемые расширения
Как только базовое мигание заработает, попробуйте следующие модификации:
- Измените частоту мигания: Измените значения
delay(), чтобы светодиод мигал быстрее или медленнее. Попробуйте 500 мс или 2000 мс. - Используйте внешний светодиод: Добавьте внешний светодиод с резистором к выводу 13 и земле. Измените код для использования другого вывода, например, вывода 12.
- Несколько светодиодов: Добавьте несколько светодиодов на разные выводы и создайте узор, например, сканер Knight Rider.
- Затухание с помощью ШИМ: Используйте
analogWrite(), чтобы плавно зажигать и гасить светодиод. Обратите внимание, что только выводы, помеченные~, поддерживают ШИМ. - Управление кнопкой: Добавьте кнопку, чтобы светодиод включался только при нажатии. Вам нужно будет считывать цифровой вход с помощью
digitalRead().
Призыв к действию
Готовы попробовать сами? Откройте живой пример в Velxio и начните мигать: Мигающий светодиод на Velxio. Никаких загрузок, никакой настройки — только ваш браузер и страсть к электронике. Удачного мигания!