Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Графический семиполосный эквалайзер-радуга на Arduino Nano и MSGEQ7

Графический семиполосный эквалайзер-радуга на Arduino Nano и MSGEQ7

Вниманию пользователей электронного портала KAZUS.RU представляется несложный в сборке семиполосный графический эквалайзер. Внешне эквалайзер представляет собой семь столбцов (по количеству полос) из светодиодов разного цвета расположенных в порядке цветов радуги. В каждом столбце 10 светодиодов — 10 уровней сигнала.

 

Принципиальная схема графического эквалайзера на MSGEQ7 и ARDUINO


Принципиальная схема устройства показана выше. Аудиосигнал с выхода музыкального центра, звуковой карты компьютера либо смартфона поступает на вход специализированной микросхемы MSGEQ7. Данная интегральная схема компании Mixed Signal Integration представляет собой 7-канальный анализатор спектра в корпусе DIP-8 и током потребления 1 мА, являясь к тому же абсолютно доступным по цене. MSGEQ7 способен из входного аудиосигнала выделить частотные полосы 63Гц, 160Гц, 400Гц, 1кГц, 2.5кГц, 6.25кГц и 16кГц:

 

MSGEQ7 информация о микросхеме

MSGEQ7 управляется по двум цифровым входам Reset (вывод 7) и Strobe (вывод 4). После стартового импульса Reset, достаточно подать семь стробирующих импульсов на линию Strobe, в результате чего после каждого стробирующего импульса, на выходе Out (вывод 3) будет появлятся напряжение, пропорциональное содержанию одной из семи частотных полос в аудиосигнале.

 

MSGEQ7 Временные параметры

 

Выход микросхемы MSGEQ7 подключен ко входу микросхемы светодиодного индикатора уровня LM3915. Данная микросхема имееть десять выходов, состояние которых зависит от уровня входного сигнала. Схемой управляет микроконтроллер ATMEGA328, я решил использовать готовую плату Arduino Nano. В сети много проектов, использующих аж целых семь корпусов LM3915. Я решил использовать динамическую индикацию и одну микросхему LM3915. Микроконтроллер формирует сигнал Reset для MSGEQ7 и после этого выдает семь стробирующих сигналов Strobe.  Одновременно, он включает один из транзисторных ключей столбцов нашего индикатора и данный столбец отображает уровень сигнала с LM3915, которая подключена к строкам нашего индикатора.

MSGEQ7 Arduino Rainbow Display

Я использовал светодиоды семи цветов (красный, оранжевый, желтый, "теплый белый", зеленый, синий и розово-фиолетовый) для отображения всех семи частотных полос. Так как у светодиодов разных цветов разное напряжение питания, разный ток и разная яркость, для того, чтобы получить одинаковый световой поток при работе нашего экрана, я использовал возможность микросхемы LM3915 задавать выходной ток. При каждом переключении столбца, микроконтроллер в зависимости от номера столбца с помощью PWM (ШИМ) и простого RC-фильтра формирует на выводах 6 и 7 LM3915 напряжение, соответствующее необходимой яркости столбца. Таким образом решена проблема неравномерной яркости разных типов светодиодов. Единственное, что потребовалось для этого — поднять частоту ШИМ Arduino с дефолтных 500Гц до 64кГц (первые две строчки в секции setup скетча).

MSGEQ7 Arduino LM3915 PCB

Насколько мне известно, иногда попадаются не совсем качественные экземпляры MSGEQ7. Характеризуют их шумы на выходе даже при заземленном входе. Т.е. даже при отсутствии сигнала на экране будут видны хаотичные выбросы. По всей видимости мне попалась именно такая микросхема. Поэтому, я дополнительно с выхода Out завожу сигнал на АЦП микроконтроллера (А7). С помощью нескольких строк кода, микроконтроллер анализирует входной сигнал, и подавляет  отображение шумов, просто не включая ключ столбца.

Скетч для микроконтроллера показан ниже:

 
Код:
#define STROBE_PIN 11 // MSGEQ7 PIN 4
#define RESET_PIN 12 // MSGEQ7 PIN 7
#define PWM_PIN 10 // УПРАВЛЕНИЕ ЯРКОСТЬЮ
#define SOUND_PIN A7 // АНАЛИЗ УРОВНЯ СИГНАЛА

byte band_pins[7]={2,3,5,6,7,8,9}; // ПОРТЫ СТОЛБЦОВ
byte band_bright[7]={40,100,0,180,230,130,10}; // УРОВНИ ЯРКОСТИ ДЛЯ КАЖДОГО ЦВЕТА
byte band_analys[7]; // МАССИВ ДЛЯ АНАЛИЗА УРОВНЕЙ
byte band_counter;

void setup(){
TCCR1B&=~7; // УСТАНАВЛИВАЕМ ЧАСТОТУ PWM 64кГц
TCCR1B|=2; // ...
for(int i=2; i<13; i++) pinMode(i,OUTPUT);
pinMode(SOUND_PIN,INPUT);
}

void loop(){
MSGEQ7();
}

void MSGEQ7(){
digitalWrite(RESET_PIN,HIGH);
delayMicroseconds(1);
digitalWrite(RESET_PIN,LOW);
delayMicroseconds(72);
for (int i=0; i<7; i++)
{
band_counter=0;
analogWrite(PWM_PIN, band_bright[i]);
digitalWrite(STROBE_PIN,LOW);
delayMicroseconds(36);
band_analys[i]=map(analogRead(SOUND_PIN),5,1023,0,255);
if (band_analys[i]>4)
{
for (int j=0; j<7; j++)
if ((j!=i) && (band_analys[j]>4)) band_counter++;
}
if (band_counter>2) digitalWrite(band_pins[i],LOW);
delayMicroseconds(1600);
digitalWrite(band_pins[i],HIGH);
digitalWrite(STROBE_PIN,HIGH);
delayMicroseconds(36);
}
}


Как было отмечено выше, я использовал плату Arduino Nano — единственное, что мне пришлось "модифицировать", это выпаять защитный диод по питанию USB и заменить его на перемычку. На нем "просаживалось" напряжение и схема работала нестабильно. Также по питанию стоит электролитический конденсатор емкостью не менее 1000мкф для того, чтобы в моменты, когда на экране горят почти все светодиоды, не просаживалось напряжение на шине USB. Также стоит заметить, что при питании схемы от USB компьютера, лучше использовать USB-хаб с внешним питанием, это минимизирует помехи по шине USB. Для эквалайзера печатной платы не разрабатывалось, вся конструкция собрана на двух макетных платах. На видео ниже вы можете увидеть работу эквалайзера.

Принципиальная схема графического эквалайзера и код для микроконтроллера доступны по этой ссылке.


C этой схемой также часто просматривают:

Эквалайзер
Светодиодный куб 5х5х5 на Arduino
Светодиодный куб 4х4х4 на Arduino
Светодиодный куб 3х3х3 на Arduino
Arduino UNO урок 1 - Мигание светодиодом
LPT программатор PIC микроконтроллеров
LPT программатор PIC микроконтроллеров
Автоматизация смывного бачка
Подключение энкодера к микроконтроллеру PIC

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU


Последние поступления

Часы реального времени для Arduino

Старинные часы-метеостанция

Блок питания для Arduino из ATX

ATX блок питания управляемый Arduino

Arduino своими руками с USB портом

Подключение монетоприемника к Arduino

Подключение PS/2 клавиатуры к Arduino

Пробуждение ПК по сети на Arduino

Запись/чтение на SD-карту с Arduino

Подключение I2C EEPROM к Arduino



© 2003—2024 «KAZUS.RU - Электронный портал»