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

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


🔊 Проект: цифровой VU-метр громкости на KA2284 и TM1637

Индикатор KA2284 и дисплей TM1637

KA2284 обычно управляет пятью светодиодами-сегментами по уровню звука — считав, сколько из пяти выходов сейчас включено, можно перевести это в понятное число от 0 до 100 на TM1637.

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

KA2284 — это специализированная микросхема-компаратор для VU-индикаторов: внутри неё пять аналоговых компараторов, каждый со своим порогом, которые сравнивают уровень входного аудиосигнала со своим порогом и включают свой выход, если сигнал его превысил. В "баргрaф"-режиме (тот, что используется здесь) пороги расположены так, что при увеличении громкости включаются всё новые выходы по нарастающей — от первого до пятого, как полоска светодиодов в музыкальном эквалайзере.

Важно понимать: пороги компараторов рассчитаны производителем по логарифмической (дБ-подобной) шкале, свойственной восприятию громкости человеком, а не по линейной. Отображение `litCount * 20` в коде — это упрощение "количество активных выходов → процент от 0 до 100", а не точный пересчёт в децибелы или физическую амплитуду сигнала.

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

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

  1. KA2284 (выходы уровня 1-5): → D2, D3, D4, D5, D6, вход аудиосигнала — на микрофонный модуль или линейный выход источника звука.
  2. TM1637: CLK → D9, DIO → D10, VCC → 5V, GND → GND.
  3. Проверьте полярность выходов KA2284 — на некоторых платах они активны по LOW, а не по HIGH, тогда в коде нужно инвертировать условие.
  4. Подайте тестовый звук разной громкости и убедитесь, что число на дисплее растёт вместе с уровнем сигнала.

Скетч

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

#include <TM1637Display.h>

const int levelPins[5] = {2, 3, 4, 5, 6};
TM1637Display display(9, 10);

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 5; i++) {
    pinMode(levelPins[i], INPUT);
  }
  display.setBrightness(5);
}

void loop() {
  int litCount = 0;
  for (int i = 0; i < 5; i++) {
    if (digitalRead(levelPins[i]) == HIGH) litCount++;
  }
  int level = litCount * 20; // 0, 20, 40, 60, 80 или 100
  Serial.print("Уровень громкости: ");
  Serial.println(level);
  display.showNumberDec(level);
  delay(50);
}

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

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

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

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

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

← ✨ лазерное шоу на вращающемся шаговом двигат…⏲️ кухонный таймер обратного отсчёта на кнопк… →

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

Все 2 товара сразу в корзину: 196 ₽ 176 ₽ (экономия 20 ₽)

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

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

Корзина


Поиск



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