Назад

Затухание светодиода с помощью ШИМ на Arduino — учебное пособие для начинающих

Введение

Добро пожаловать в ваш первый проект с ШИМ (широтно-импульсной модуляцией)! В этом уроке мы соберем простую схему, которая плавно затухает светодиод от выключенного состояния до яркого и обратно. Это классический проект для начинающих на Arduino, который учит использовать analogWrite() для управления яркостью, скоростью двигателя или любым устройством, реагирующим на изменяющееся среднее напряжение.

Мы будем использовать Velxio — браузерный симулятор схем с аналоговой поддержкой точности SPICE. Никакого оборудования не нужно — только ваш браузер! Вы можете следить, редактировать код и мгновенно видеть результаты.

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

Обзор схемы

Давайте рассмотрим компоненты и подключения для этого проекта.

Компоненты

КомпонентКоличествоПримечания
Arduino Uno1Мозг операции
Светодиод (любой цвет)1Будем использовать синий светодиод
Резистор (220 Ом)1Токоограничивающий резистор (не показан на схеме, но рекомендуется)
Соединительные провода2Для подключений

Подключение

  1. Анод светодиода (длинная ножка) → Подключите к контакту Arduino 9 (контакт с поддержкой ШИМ).
  2. Катод светодиода (короткая ножка) → Подключите к GND на Arduino.

Важно: Всегда используйте токоограничивающий резистор (обычно 220 Ом — 1 кОм) последовательно со светодиодом, чтобы предотвратить его перегорание. В симуляторе Velxio модель светодиода включает внутреннее сопротивление, но в реальной жизни его необходимо добавить.

Вот подробное описание подключения:

Вот и всё! Всего два соединения. Контакт 9 Arduino может выдавать ШИМ-сигнал, который мы будем использовать для изменения яркости светодиода.

Исходный код для затухающего светодиода в редакторе Monaco от Velxio

Разбор кода

Откройте редактор кода в Velxio. Вы увидите следующий скетч Arduino:

// Fade LED with PWM
// Smoothly fade LED brightness

const int LED_PIN = 9; // PWM pin

int brightness = 0;
int fadeAmount = 5;

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

void loop() {
  analogWrite(LED_PIN, brightness);

  brightness += fadeAmount;

  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  delay(30);
}

Как это работает

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

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

  1. Светодиод не горит?

    • Проверьте, правильно ли подключен светодиод (анод к контакту 9, катод к GND).
    • Убедитесь, что код загружен (нажмите кнопку Run на панели инструментов).
    • Проверьте, что LED_PIN соответствует фактически используемому контакту.
  2. Светодиод горит на полную яркость?

    • Убедитесь, что вы используете контакт с поддержкой ШИМ (3, 5, 6, 9, 10, 11 на Uno). Контакт 13 не поддерживает ШИМ.
    • Проверьте, что вызывается analogWrite(), а не digitalWrite().
  3. Затухание слишком быстрое или слишком медленное?

    • Отрегулируйте значение delay(30). Больше = медленнее затухание.
    • Измените fadeAmount, чтобы контролировать размер шага (например, 1 для очень плавного, 10 для более быстрого).
  4. Симулятор не отвечает?

    • Используйте кнопку Reset на панели инструментов холста.
    • При необходимости обновите страницу.

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

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

После того как вы освоите базовое затухание, попробуйте следующие задачи:

  1. Несколько светодиодов: Добавьте еще два светодиода на контакты 10 и 11. Сделайте так, чтобы они затухали последовательно или с разной скоростью.
  2. Управление кнопкой: Добавьте тактовую кнопку для запуска/остановки затухания.
  3. Управление скоростью потенциометром: Используйте потенциометр для регулировки скорости затухания (замените delay(30) на переменную, считываемую с аналогового входа).
  4. RGB-светодиод: Используйте RGB-светодиод и создавайте затухание разных цветов, управляя тремя ШИМ-контактами.
  5. Монитор последовательного порта: Выводите значение яркости в монитор последовательного порта для отладки.

Попробуйте сами!

Готовы увидеть это в действии? Откройте живой пример в Velxio:

👉 Запустить пример затухающего светодиода

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

Удачного затухания!


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

Автор

David Montero

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

GitHub velxio.dev

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


Предыдущая статья
Serial Hello World: Ваш первый проект связи с Arduino
Следующая статья
Управление светодиодом с помощью кнопки: ваш первый проект с цифровым входом на Arduino