Назад

Циклическая смена цветов RGB-светодиода с Arduino на Velxio

Введение

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

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

Начнем с размещения компонентов на холсте Velxio. Вам понадобятся Arduino Uno и RGB-светодиод. RGB-светодиод имеет четыре вывода: один общий катод (COM) и три анода для красного (R), зеленого (G) и синего (B) цветов.

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

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

В Velxio вы можете перетаскивать провода от одного пина к другому. Цвета проводов в симуляции соответствуют функциям пинов: красный для красного, зеленый для зеленого, синий для синего и черный для земли. Это упрощает отслеживание соединений.

Разбор кода

Теперь напишем скетч для Arduino. Откройте редактор кода в Velxio и введите следующее:

Исходный код для RGB-светодиода в редакторе Monaco от Velxio

// RGB LED Color Cycling
// Display different colors

const int RED_PIN = 9;
const int GREEN_PIN = 10;
const int BLUE_PIN = 11;

void setup() {
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);
}

void setColor(int red, int green, int blue) {
  analogWrite(RED_PIN, red);
  analogWrite(GREEN_PIN, green);
  analogWrite(BLUE_PIN, blue);
}

void loop() {
  // Red
  setColor(255, 0, 0);
  delay(1000);

  // Green
  setColor(0, 255, 0);
  delay(1000);

  // Blue
  setColor(0, 0, 255);
  delay(1000);

  // Yellow
  setColor(255, 255, 0);
  delay(1000);

  // Cyan
  setColor(0, 255, 255);
  delay(1000);

  // Magenta
  setColor(255, 0, 255);
  delay(1000);

  // White
  setColor(255, 255, 255);
  delay(1000);
}

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

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

ШИМ (Широтно-импульсная модуляция)

ШИМ — это метод, при котором цифровой пин быстро переключается между HIGH и LOW для имитации аналогового напряжения. Коэффициент заполнения (процент времени в состоянии HIGH) определяет воспринимаемую яркость. Функция analogWrite() в Arduino выдает ШИМ-сигнал с частотой около 490 Гц на пинах 9, 10 и 11.

Смешение цветов RGB

RGB-светодиод содержит три отдельных светодиода (красный, зеленый, синий) в одном корпусе. Изменяя яркость каждого, можно создавать миллионы цветов. Например:

Общий катод против общего анода

В этом руководстве используется RGB-светодиод с общим катодом, где вывод COM подключен к земле. Чтобы включить цвет, подайте сигнал HIGH на его анод. Если у вас светодиод с общим анодом, подключите COM к VCC и используйте инвертированную логику (LOW для включения).

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

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

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

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

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

  1. Плавный переход между цветами: Вместо скачков используйте цикл для постепенного изменения значений ШИМ для плавных переходов.
  2. Управление кнопкой: Добавьте тактовую кнопку для ручного переключения цветов.
  3. Вход с потенциометра: Используйте потенциометр для выбора цвета из палитры.
  4. Управление через последовательный порт: Отправляйте значения цвета через монитор последовательного порта для установки пользовательских цветов.
  5. Несколько светодиодов: Соедините несколько RGB-светодиодов для светового шоу.

Чтобы добавить новые компоненты, используйте выбор компонентов:

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

Если вам нужны дополнительные библиотеки, менеджер библиотек упрощает эту задачу:

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

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

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


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

Автор

David Montero

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

GitHub velxio.dev

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


Предыдущая статья
Создаем игру Simon Says на Arduino с Velxio
Следующая статья
Serial Hello World: Ваш первый проект связи с Arduino