Назад

Управление светодиодом с помощью кнопки: ваш первый проект с цифровым входом на Arduino

Введение

Добро пожаловать в ваш первый проект с цифровым входом на Arduino! В этом руководстве вы соберете схему, в которой кнопка управляет светодиодом. При нажатии кнопки светодиод загорается; при отпускании — гаснет. Этот простой проект познакомит вас с чтением цифровых входов, использованием внутренних подтягивающих резисторов и написанием чистого кода для Arduino.

Мы будем использовать браузерный симулятор Velxio, который предоставляет точную SPICE-среду, позволяя тестировать схему без какого-либо оборудования. Давайте начнем!

Схема подключения

Схема подключения кнопки и светодиода на холсте симулятора Velxio

Схема состоит из трех основных компонентов:

Детали подключения

  1. Кнопка к Arduino:

    • Один вывод кнопки (контакт 1.l) подключается к цифровому пину 2 Arduino синим проводом (#00aaff).
    • Другой вывод (контакт 2.l) подключается к GND черным проводом.
  2. Светодиод к Arduino:

    • Анод (длинная ножка, контакт A) подключается к цифровому пину 13 Arduino красным проводом (#ff0000).
    • Катод (короткая ножка, контакт C) подключается к GND черным проводом.

Обратите внимание, что у кнопки нет внешнего подтягивающего резистора. Вместо этого мы будем использовать внутренний подтягивающий резистор Arduino в коде. Когда кнопка не нажата, входной пин подтянут к HIGH; при нажатии он читается как LOW.

Разбор кода

Исходный код для управления светодиодом кнопкой в редакторе Monaco на Velxio

Вот полный скетч для Arduino:

// Button LED Control
// Press button to turn LED on

const int BUTTON_PIN = 2;
const int LED_PIN = 13;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  int buttonState = digitalRead(BUTTON_PIN);

  if (buttonState == LOW) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

Пояснение

Ключевые концепции

Цифровой вход и подтягивающие резисторы

Когда цифровой пин настроен как вход, он читает либо HIGH (5В), либо LOW (0В). Без подтягивающего или стягивающего резистора пин может «плавать» между состояниями, вызывая нестабильные показания. Внутренний подтягивающий резистор (обычно 20-50 кОм) обеспечивает стабильный HIGH, когда кнопка разомкнута. Нажатие кнопки подключает пин напрямую к GND, переопределяя подтяжку и давая показание LOW.

Дребезг контактов

Механические кнопки часто «дребезжат», вызывая множество быстрых переключений. В этом простом примере мы игнорируем дребезг, так как светодиод реагирует быстро, и эффект минимален. Для более критичных приложений можно добавить небольшую задержку или использовать библиотеку для подавления дребезга.

Использование констант

Определение номеров пинов как констант в начале скетча упрощает изменение подключения без поиска по всему коду. Это также улучшает читаемость.

Частые ошибки и советы по отладке

Использование симулятора Velxio

Панель инструментов редактора Velxio с кнопками компиляции и запуска

Нажмите кнопку Run на панели инструментов, чтобы скомпилировать и запустить симуляцию. Затем вы можете нажать кнопку на холсте, чтобы увидеть реакцию светодиода.

Панель инструментов холста Velxio над окном симуляции

Используйте панель инструментов холста, чтобы приостановить, сбросить или изменить скорость симуляции.

Модальное окно выбора компонентов Velxio с просмотром деталей по категориям

Чтобы добавить больше компонентов, откройте окно выбора компонентов и просмотрите категории, такие как «Input» или «Output».

Модальное окно менеджера библиотек Velxio со списком установленных библиотек Arduino

Если вам нужны дополнительные библиотеки (например, для подавления дребезга), используйте менеджер библиотек.

Предлагаемые расширения

После того как базовая схема заработает, попробуйте эти улучшения:

  1. Режим переключения: Измените код так, чтобы каждое нажатие включало или выключало светодиод, а не удерживало его.
  2. Несколько светодиодов: Добавьте больше светодиодов и кнопок, чтобы создать простую панель ввода.
  3. Подавление дребезга: Реализуйте программное подавление дребезга с помощью задержки 50 мс или таймера.
  4. Монитор порта: Выводите состояние кнопки в монитор порта для отладки.
  5. ШИМ-яркость: Замените цифровую запись на analogWrite(), чтобы управлять яркостью светодиода в зависимости от длительности нажатия кнопки.

Призыв к действию

Готовы собрать свой собственный светодиод, управляемый кнопкой? Откройте живой пример на Velxio и начинайте экспериментировать: Пример кнопки и светодиода. Никакого оборудования не требуется — только ваш браузер. Удачного творчества!


Поделиться:
David Montero

Автор

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Похожие статьи


Предыдущая статья
Затухание светодиода с помощью ШИМ на Arduino — учебное пособие для начинающих
Следующая статья
Создаем симулятор светофора на Arduino в Velxio