🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🎵 Проект: цветомузыка на индикаторе KA2284 и RGB-светодиоде

Схема цветомузыки на индикаторе KA2284 и RGB-светодиоде

KA2284 уже сам зажигает светодиодную шкалу по звуку, а параллельно отдаёт аналоговый уровень сигнала — его можно считать и на Arduino, чтобы управлять RGB-светодиодом.

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

Микросхема KA2284 изначально предназначена для светодиодных индикаторов уровня (как в старых магнитофонах и усилителях) — она выпрямляет и усредняет переменный звуковой сигнал, превращая его в постоянное напряжение, пропорциональное громкости звука в данный момент. Помимо того, что модуль сам зажигает свою светодиодную шкалу, он дополнительно выводит это напряжение на отдельный аналоговый выход, который можно подключить к Arduino и считывать функцией `analogRead()` как число от 0 до 1023.

Дальше Arduino просто переводит это число в яркость трёх каналов RGB-светодиода через `map()` и `analogWrite()` — громче звук, выше значение с датчика, ярче и «теплее» свечение. Используя разные формулы для красного, зелёного и синего каналов (в примере — прямую, инверсную и половинную зависимость), можно добиться эффекта смены цвета в такт музыке, а не просто изменения яркости одного оттенка.

`analogWrite()` работает через ШИМ (широтно-импульсную модуляцию) — светодиод физически мигает очень быстро (сотни раз в секунду), а глаз воспринимает это как плавное изменение яркости за счёт инерции зрения.

Пошаговая сборка

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

  1. Подключите модуль KA2284: аналоговый выход уровня → A0, VCC → 5V, GND → GND.
  2. Подведите источник звука на звуковой вход модуля согласно его собственной схеме (обычно через конденсатор, если это не сделано на самой плате модуля).
  3. Подключите RGB-светодиод с общим катодом: R → D9, G → D10, B → D11, каждый через резистор 220-330 Ом, общий катод — на землю.
  4. Если светодиод с общим анодом (не катодом) — общий анод подключается к питанию, а логику в коде нужно инвертировать (255 - значение).
  5. Запустите воспроизведение звука и убедитесь, что яркость/цвет светодиода реагируют на громкость — если реакции нет, проверьте контакт аналогового выхода и общую землю всех устройств.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

const int levelPin = A0;
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  int level = analogRead(levelPin); // 0-1023, пропорционально громкости звука
  int brightness = map(level, 0, 1023, 0, 255); // переводим в диапазон ШИМ 0-255
  analogWrite(redPin, brightness);        // красный растёт вместе с громкостью
  analogWrite(greenPin, 255 - brightness); // зелёный — наоборот, убывает
  analogWrite(bluePin, brightness / 2);    // синий растёт медленнее остальных
  delay(20); // небольшая задержка для плавности, не делайте слишком большой — будет заметное мигание
}

Чем громче звук — тем ярче красный канал и тусклее зелёный, синий держится примерно посередине. Пропорции легко поменять под свой вкус, подставив другие формулы в `analogWrite()`.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← ⚖️ электронные весы на HX711 с выводом на LCD…🐣 терморегулятор инкубатора на DS18B20 и рел… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 159 ₽ 143 ₽ (экономия 16 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA