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

Вот схема подключения:
- Подключите вывод R RGB-светодиода к пину Arduino 9 (красный провод).
- Подключите вывод G к пину Arduino 10 (зеленый провод).
- Подключите вывод B к пину Arduino 11 (синий провод).
- Подключите вывод COM к GND Arduino (черный провод).
В Velxio вы можете перетаскивать провода от одного пина к другому. Цвета проводов в симуляции соответствуют функциям пинов: красный для красного, зеленый для зеленого, синий для синего и черный для земли. Это упрощает отслеживание соединений.
Разбор кода
Теперь напишем скетч для Arduino. Откройте редактор кода в 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);
}
Как это работает
- Определение пинов: Мы задаем константы для трех ШИМ-пинов:
RED_PIN = 9,GREEN_PIN = 10,BLUE_PIN = 11. Эти пины поддерживаютanalogWrite()для ШИМ-выхода. - setup(): Настраивает все три пина как выходы.
- setColor(): Вспомогательная функция, которая принимает три значения (0-255) для красного, зеленого и синего цветов и записывает их на соответствующие пины с помощью
analogWrite(). Это создает напряжение от 0 до 5 В, управляя яркостью светодиода. - loop(): Вызывает
setColor()с различными комбинациями для получения цветов. Каждый цвет отображается в течение 1 секунды (delay(1000)).
Ключевые концепции
ШИМ (Широтно-импульсная модуляция)
ШИМ — это метод, при котором цифровой пин быстро переключается между HIGH и LOW для имитации аналогового напряжения. Коэффициент заполнения (процент времени в состоянии HIGH) определяет воспринимаемую яркость. Функция analogWrite() в Arduino выдает ШИМ-сигнал с частотой около 490 Гц на пинах 9, 10 и 11.
Смешение цветов RGB
RGB-светодиод содержит три отдельных светодиода (красный, зеленый, синий) в одном корпусе. Изменяя яркость каждого, можно создавать миллионы цветов. Например:
- Красный + Зеленый = Желтый
- Зеленый + Синий = Голубой
- Красный + Синий = Пурпурный
- Красный + Зеленый + Синий = Белый
Общий катод против общего анода
В этом руководстве используется RGB-светодиод с общим катодом, где вывод COM подключен к земле. Чтобы включить цвет, подайте сигнал HIGH на его анод. Если у вас светодиод с общим анодом, подключите COM к VCC и используйте инвертированную логику (LOW для включения).
Частые ошибки и советы по отладке
- Неправильные номера пинов: Перепроверьте, что выводы R, G, B подключены к правильным пинам Arduino (9, 10, 11). Перепутанный провод приведет к неправильным цветам.
- Отсутствие заземления: Вывод COM должен быть подключен к GND. Без него светодиод не загорится.
- ШИМ против цифрового:
analogWrite()работает только на пинах, поддерживающих ШИМ (отмечены ~ на Uno). Использование не-ШИМ пина приведет только к полному включению/выключению. - Тайминг задержки:
delay(1000)приостанавливает всю программу. Для более отзывчивых проектов рассмотрите использованиеmillis()для неблокирующей синхронизации. - Проблемы симулятора: Если светодиод не горит, проверьте подключение в Velxio. Используйте панель инструментов холста, чтобы увеличить и проверить соединения.


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

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

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