Меню
Корзина 00 ₽
    Поддержка в мессенджере
    Ampertok
    Каталог
      Поиск
      • Бонусы
      • Блог
      • Доставка
      • Контакты
      • Юр. лицам
      Ampertok
      • Arduino
      • Модули
      • Приборы
      • Датчики
      • Контроллеры
      • Питание и заряд
      • Провода, кабели
      • Дисплеи
      • Инструменты
      • Компоненты
      • Наборы
      • Механика
      • РУ компоненты
      • Умный дом
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Bluetooth GPS GSM/GPRS RFID Аудио БП-связь Время Драйвера Зарядки Интерфейсы Макетные платы Преобразователи Реле Wi-Fi
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Газа Движение Звук Климат Пространство Свет и цвет
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Arduino Orange Raspberry STM Программатор ESP
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Li-ion Li-Pol Батарейки Батарейные отсеки Блоки питания Модули Солнечные панели
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      TFT Светодиодные Символьные
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Крепежи Переключатели
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Arduino DIY Модули Пайщик Р/У
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Двигатели Драйверы Крепления Сервоприводы Шасси
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Коптеры и комплектующие Радиоуправляемые модели
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Корзина 00 ₽
      Корзина
      Ваша корзина пуста!
      • Arduino
      • Модули
        Bluetooth GPS GSM/GPRS RFID Аудио БП-связь Время Драйвера Зарядки Интерфейсы Макетные платы Преобразователи Реле Wi-Fi
      • Приборы
      • Датчики
        Газа Движение Звук Климат Пространство Свет и цвет
      • Контроллеры
        Arduino Orange Raspberry STM Программатор ESP
      • Питание и заряд
        Li-ion Li-Pol Батарейки Батарейные отсеки Блоки питания Модули Солнечные панели
      • Провода, кабели
      • Дисплеи
        TFT Светодиодные Символьные
      • Инструменты
      • Компоненты
        Крепежи Переключатели
      • Наборы
        Arduino DIY Модули Пайщик Р/У
      • Механика
        Двигатели Драйверы Крепления Сервоприводы Шасси
      • РУ компоненты
        Коптеры и комплектующие Радиоуправляемые модели
      • Умный дом
      Каталог Поиск Корзина Корзина 00 ₽ Сравнение Войти
      Авторизация
      Забыли пароль?
      Регистрация

      Визуализатор музыки на Arduino и матричном дисплее 32x8

      • Главная
      • Блог
      • Проекты
      • Визуализатор музыки на Arduino

      В настоящее время на многих концертах, фестивалях и в ночных клубах проигрывание музыки сопровождается различными визуальными эффектами, изменяющимися в такт проигрываемой музыки. Устройства, реализующие это, называются визуализаторами музыки. По сути, данные устройства извлекают из принимаемого аудио сигнала его спектр, используя преобразование Фурье, и визуализируют (отображают) данный спектр на каких-нибудь дисплеях (экранах).

      В данной статье мы рассмотрим создание на основе платы Arduino Nano, модуля светодиодного матричного дисплея 32x8 (Dot Matrix Display Module) и аудиосенсора (Audio Sensor) визуализатора музыки (аудио). Светодиоды на матричном дисплее 32x8 будут загораться в зависимости от сигнала, который будет считывать плата Arduino с микрофона, подсоединенного к ее аналоговому контакту. Ранее на нашем сайте мы уже рассматривали похожий проект визуализатора (посложнее немного, но с большим количеством режимов отображения), также можете посмотреть проект анализатора спектра звуковых частот на основе Arduino, он также во многом похож на рассматриваемый в данной статье проект, но только вместо матричного светодиодного дисплея в нем используется ЖК дисплей 128х64.

      Необходимые компоненты

      Плата Arduino Nano (купить на Амперток).

      MAX7219 32x8 Dot Matrix Display Module (модуль светодиодного матричного дисплея) (купить на Амперток).

      Микрофон/модуль микрофона (купить на Амперток).

      Соединительные провода.

      3-D принтер (опционально).

      Основные принципы работы модуля матричного дисплея 32x8 MAX7219

      Модуль матричного дисплея (Display Dot Matrix Module) MAX7219 представляет собой интегрированный последовательный дисплей со светодиодами, соединенными по схеме с общим катодом (common-cathode). Модули MAX7219 могут объединяться в вертикальной или горизонтальной плоскости и, таким образом, из них можно собрать универсальный матричный дисплей необходимого размера также, как и из светодиодных матричных дисплеев P10. Данный модуль дисплея использует для связи с "внешним миром" удобный 3-проводный последовательный интерфейс (3-wire serial interface), поэтому его легко можно подключить к современным микроконтроллерным платам, таким как Arduino или Raspberry Pi.

      Данный модуль дисплея содержит четыре матричных дисплея 8×8 и четыре микросхемы драйвера дисплея MAX7219, то есть по одной микросхеме драйвера на каждый дисплей 8×8. Модуль светодиодной матрицы 8x8 содержит 64 светодиода, упорядоченных в форме матрицы. Принципиальная схема соединений данной светодиодной матрицы показана на следующем рисунке.

      Как показано на представленном рисунке светодиодная матрица 8×8 содержит 16 контактов, 8 контактов рядов (строк) и 8 контактов столбцов. Светодиоды в строках и столбцах матрицы объединены вместе чтобы уменьшить число используемых для управления светодиодами контактов. Для управления таким большим числом светодиодов с помощью относительно небольшого числа используемых контактов используется технология мультиплексирования (Multiplexing). Более подробно суть данной технологии вы можете прочитать в этой статье.

      Микросхема драйвера светодиодного дисплея MAX7219 используется для управления модулями дисплея. С помощью этой микросхемы можно с высокой точностью управлять дисплеем и генерировать образец или текст, который вы хотите отобразить. Также дополнительным преимуществом использования данной микросхемы драйвера является то, что с ее помощью можно управлять всеми 64 светодиодами, используя для этого всего лишь 3 контакта.

      Основные особенности модуля матричного дисплея 32x8 MAX7219:

      входное (питающее) напряжение: 5V;

      максимальный рабочий ток: 320 mA;

      всего 3 провода (контакта) для управления дисплеем;

      простое объединение нескольких модулей дисплея в один большой дисплей;

      компактный размер модуля дисплея.

      Схема проекта

      Схема визуализатора музыки на Arduino и матричном дисплее 32x8 представлена на следующем рисунке.

      Модуль матричного дисплея и микрофон запитываются используя контакты 5V и GND платы Arduino Nano. Но если вы хотите использовать матричный дисплей на его максимальной яркости, то в этом случае для его питания целесообразно использовать внешний источник питания поскольку в режиме максимальной яркости данный дисплей потребляет достаточно большой ток.

      Контакт данных микрофона подключен к аналоговому контакту A7 платы Arduino Nano. SPI контакты дисплея подключены к аппаратным контактам интерфейса SPI платы Arduino Nano поскольку аппаратные контакты интерфейса SPI значительно быстрее работают, чем контакты интерфейса SPI, конфигурируемые программным способом.

      Необходимые соединения между платой Arduino Nano, модулем матричного дисплея и микрофоном представлены в следующей таблице.

      Чтобы уменьшить размеры конструкции проекта с целью ее последующего размещения в корпусе, напечатанном с помощью 3-D принтера, схема соединений данного проекта была спаяна с помощью перфорированной платы. Получившаяся в данном случае конструкция проекта показана на следующем рисунке.

      Объяснение программы для Arduino

      Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

      В программе для нашего проекта будут использоваться библиотеки arduinoFFT.h и MD_MAX72xx.h. Обе эти библиотеки можно установить из менеджера библиотек (library manager) Arduino IDE. Для этого запустите Arduino IDE и выберите в ней пункт меню Sketch < Include Library < Manage Libraries. Выполните в открывшемся окне поиск библиотеки arduinoFFT и установите arduinoFFT library от Enrique Condes.

      Аналогичным образом установите библиотеку MD_MAX72xx.h от MajicDesigns.


      После установки библиотек необходимо подключить их использование в программе. Библиотека ArduinoFFT будет использоваться для вычисления спектра аналогового сигнала с помощью быстрого преобразования Фурье (FFT). Библиотека MD_MAX72xx будет использоваться для отображения вычисленного спектра на нашем матричном дисплее. Библиотека SPI будет необходима для осуществления взаимодействия по интерфейсу SPI между платой Arduino и матричным дисплеем.


      #include <arduinoFFT.h>

      #include <MD_MAX72xx.h>

      #include <SPI.h>


      Далее создадим объект MD_MAX72XX, который будет необходим для работы с матричным дисплеем, с помощью функции MD_MAX72XX (). В этой функции три параметра: первый – это тип аппаратного обеспечения, второй – это контакт CS, третий – максимальное число подключенных устройств. Также мы создадим объект arduinoFFT с помощью функции arduinoFFT().


      MD_MAX72XX disp = MD_MAX72XX(MD_MAX72XX::FC16_HW, 10, 4);

      arduinoFFT FFT = arduinoFFT();


      Затем объявим два массива для хранения 64 компонент спектра – в одном будет храниться действительная часть спектра, а в другом – мнимая.


      double realComponent[64];

      double imagComponent[64];


      Далее в функции setup() инициализируем последовательную связь со скоростью 9600 бод для целей отладки. Также инициализируем матричный дисплей с помощью функции disp.begin().


      void setup()

      {

      disp.begin();

      Serial.begin(9600);

      }

      После этого внутри функции loop мы будем считывать 64 отсчета сигнала с микрофона (с контакта A7 платы Arduino nano) используя цикл for и сохранять эти отсчеты в массиве ‘realComponent’.

      for (int i=0; i<64; i++)

      {

      realComponent[i] = analogRead(A7)/sensitivity;

      imagComponent[i] = 0;

      }


      После получения 64 отсчетов сигнала с выхода микрофона мы будем подавать их на вход алгоритма вычисления быстрого преобразования Фурье (Fast Fourier Transform, FFT) чтобы вычислить 64 спектральные компоненты действительной и мнимой части спектра. Затем вычисленные спектральные компоненты мы будем подавать на вход функции FFT.ComplexToMagnitude() чтобы определить амплитуды этих 64 спектральных компонент.


      FFT.Windowing(realComponent, 64, FFT_WIN_TYP_HAMMING, FFT_FORWARD);

      FFT.Compute(realComponent, imagComponent, 64, FFT_FORWARD);

      FFT.ComplexToMagnitude(realComponent, imagComponent, 64);


      Далее мы будем использовать цикл для управления 32 столбцами светодиодной матрицы. Внутри этого цикла мы будем преобразовывать наши значения в известный диапазон и затем с помощью функции map мы будем преобразовывать их в диапазон от 0 до 8. Нули будут означать что все светодиоды рассматриваемого столбца матрицы должны находиться в выключенном состоянии (low) и наоборот.


      for(int i=0; i<32; i++)

      {

      realComponent[i] = constrain(realComponent[i],0,80);

      realComponent[i] = map(realComponent[i],0,80,0,8);

      index = realComponent[i];

      value = spectralHeight[index];

      c = 31 - i;

      disp.setColumn(c, value);

      }


      3-D печать корпуса для визуализатора спектра аудио сигнала

      После сборки конструкции проекта с помощью перфорированной платы и программирования платы Arduino Nano можно изготовить корпус для нашего визуализатора. Для этого можно измерить размеры конструкции проекта с помощью верньера. Получившийся в результате корпус для нашего визуализатора спектра показан на рисунке ниже. STL файлы для 3-D печати данного корпуса можно скачать по следующей ссылке с Thingiverse.

      Тестирование работы проекта

      После того как все компоненты проекта будут готовы можно поместить электронную часть проекта внутрь изготовленного корпуса.

      Для питания устройства мы использовали адаптер 5V. В отсутствие звукового сигнала все светодиоды матричного дисплея будут в выключенном состоянии, но когда мы будем издавать какие либо звуки или проигрывать музыку вблизи нашего микрофона, то светодиоды матричного дисплея будут загораться в такт проигрываемой музыки.

      В нашем проекте мы использовали микрофон для считывания звукового сигнала, но вместо него вы можете использовать, к примеру, выход наушников вашего смартфона/музыкальной системы.


      Исходный код программы (скетча)

      #include <arduinoFFT.h>

      #include <MD_MAX72xx.h>

      #include <SPI.h>

      MD_MAX72XX disp = MD_MAX72XX(MD_MAX72XX::FC16_HW, 10, 4);

      arduinoFFT FFT = arduinoFFT();

      double realComponent[64];

      double imagComponent[64];

      int spectralHeight[] = {0b00000000,0b10000000,0b11000000,

      0b11100000,0b11110000,0b11111000,

      0b11111100,0b11111110,0b11111111};

      int index, c, value;

      void setup()

      {

      disp.begin();

      Serial.begin(9600);

      }

      void loop()

      {

      int sensitivity = map(analogRead(A6),0,1023,50,100);

      Serial.println (analogRead(A6));

      for(int i=0; i<64; i++)

      {

      realComponent[i] = analogRead(A7)/sensitivity;

      imagComponent[i] = 0;

      }

      FFT.Windowing(realComponent, 64, FFT_WIN_TYP_HAMMING, FFT_FORWARD);

      FFT.Compute(realComponent, imagComponent, 64, FFT_FORWARD);

      FFT.ComplexToMagnitude(realComponent, imagComponent, 64);

      for(int i=0; i<32; i++)

      {

      realComponent[i] = constrain(realComponent[i],0,80);

      realComponent[i] = map(realComponent[i],0,80,0,8);

      index = realComponent[i];

      value = spectralHeight[index];

      c = 31 - i;

      disp.setColumn(c, value);

      }

      }

      Теги:

      Поделиться
      189
      0
      4 Января, 2024
      Комментарии
      • Ваш комментарий будет первым
      Оставить комментарий
      Поделиться
      Выберите обязательные опции

      Мы используем файлы cookie и другие средства сохранения предпочтений и анализа действий посетителей сайта. Подробнее в Условия соглашения. Нажмите «Принять», если даете согласие на это.

      Принять
      Ampertok

      Интернет-магазин «Ampertok.ru»

      2025

      Аккаунт
      • Сравнение
      • Избранное
      • Возвраты
      • Аккаунт
      • Корзина
      Информация
      • Контакты
      • Блог
      • Доставка
      • Условия соглашения
      • Бонусы
      • Возврат
      • Юр. лицам
      Категории
      • Arduino
      • Контроллеры
      • Наборы
      • Инструменты
      • Модули
      • Датчики
      Поддержка

      Будни, с 10.00 до 17.00

      Поддержка в мессенджере
      Электронная почта
      shop@ampertok.ru
      Адрес магазина
      г. Санкт-Петербург, ул. Бухарестская д.6
      Мы в сети
      • Сообщество
      • Канал
      Подписаться на рассылку

      Мы не будем присылать вам спам. Только скидки, выгодные предложения, а так же интересные статьи!

      Ampertok

      Интернет-магазин «Ampertok.ru», 2025