Когда деревья были большими, а я был юным, но в меру упитанным электронщиком, мне доводилось проектировать весьма немаленькие светодиодные штуковины. Естественно, делалось это все на микроконтроллерах. Старые фотографии одной из таких штуковин навеяли мне идею собрать схему спектроанализатора, но без использования микроконтроллеров.
Я поставил для себя задачу получить схему с функциональностью, аналогичной тому, что показано на видео. Также хотелось сэкономить драгоценные микросхемы LM3914, запасы которых у меня истощились. Для этого решено было делать динамическую индикацию. Да, вам не почудилось, динамическая индикация и никаких микроконтроллеров. К тому же, динамическая индикация с легкостью позволит решить задачу одновременного отображения столбиков и точек. Количество светодиодных столбиков я решил ограничить до четырех, чтобы не раздувать слишком большую схему.
Как всегда, под катом вас ждет беспощадная схемотехника на основе только жесткой логики и не менее жестких операционниках.
В то время на нашем черноморском побережье только начинали открываться модные ночные клубы с электронной музыкой. Владелец одного из таких клубов обратился к нам с целью украсить интерьер своего заведения. Отмечу, что сам владелец позиционировал себя ди-джеем.
Мне здорово пришлось попыхтеть, я первый раз писал цифровой фильтр для AVR микроконтроллера. Благо, обрабатывать сигналы в реальном времени не требовалось, и в интернете уже были примеры проектов. Контроллер накапливал измерения АЦП в пределах ограниченного окна и затем проводил вычисления, на основе которых формировалась светодиодная анимация.
Естественно, заказчик проект не принял. Буквально заявив, что это не музыка, а какая-то… ерунда. Объяснить ему, что это реальная спектрограмма, не представлялось возможным. Да и, как известно, кто платит, того и танцуют. Мне пришлось взять дополнительное время, и как следует подумать. Решение не заставило себя долго ждать.
Тогда набирал популярность медиаплеер Winamp. Он умел рисовать на экране различную анимацию на основе спектра звукового сигнала. Я некоторое время понаблюдал за тем, как плеер это делает. Тупо нарисовал десятка полтора произвольных огибающих в памяти микроконтроллера. Затем оставил в коде только вычисление низких частот. По пикам низких частот случайным порядком выгружалась одна из имеющихся псевдоогибающих и выполнялась анимация, которая гасила столбики.
При следующей встречи восторгу заказчика не было предела. «Я вижу музыку» — воскликнул он. Я не стал его переубеждать. Просто сказал, что перенастроил фильтры, поэтому в этот раз все получилось как надо.
Главный вывод из этой истории я для себя сделал. Не нужно шокировать заказчика своими новаторствами. Дайте заказчику ровно то, к чему он привык.
Конечно, сейчас при обилии китайских светодиодных экранов таким никого не удивишь. Но на тот момент китайские экраны в Россию еще не привозили.
❯ Разработка электрической схемы
Рассмотрим общий принцип работы спектроанализатора. Схема предназначена для графического отображения соотношения спектра сигнала по четырем полосам: 500Гц, 1кГц, 4кГц, 8кГц. Для отображения уровня сигнала используется светодиодная шкала из четырех столбцов по 20 светодиодов в каждом. Каждый столбик светодиодов отображает спектральную плотность для своей полосы частот: слева — нижние частоты, справа — верхние.
Заполнение столбца светодиодов производится снизу вверх пропорционально пиковому значению сигнала в соответствующем диапазоне частот. Полное время убывания столбца составляет примерно 50мс. В каждом столбце отдельной точкой отмечается пик с временем убывания примерно 1с.
Предварительный каскад А смешивает стереосигнал в моно. Смеситель А3 не имеет емкостной развязки входов. В моем случае это было не нужно. Но, при необходимости, можно поставить последовательно с входными резисторами по конденсатору примерно по 10мкФ. Полосовой фильтр А2 ограничивает полосу входного сигнала, это сделано скорее для само успокоения, чем из-за реальной необходимости, все так делают, и я решил не выделяться. А вот повторитель А1 необходим для согласования полосовых фильтров, его следует оставить, даже если вы решите выкинуть входной смеситель и фильтр, иначе внутреннее сопротивление источника сигнала (в нашем случае это фильтр А2) будет оказывать влияние на полосу пропускания фильтров С1 — С4.
Разделение спектра на четыре полосы производится фильтрами С1 – С4. АЧХ фильтров имеет второй порядок, этого вполне достаточно для получения удовлетворительного визуального эффекта, все-таки не измерительный прибор делаю.
Усилители С5 – С8 позволяют получить сбалансированное отображение спектра для улучшения визуального эффекта. Регулируя их коэффициенты усиления нужно добиться того, чтобы столбики светодиодов как можно чаще «добивали» до максимума.
Пиковые детекторы С5.1, С6.1, С7.1, С8.1 предназначены для формирования уровней заполнения светодиодных столбиков для динамической индикации. Время полного убывания сигнала для них составляет примерно 50мс, это снижает мерцание индикации и позволяет формировать отдельно различимые кадры спектра сигнала. Если это время уменьшить, то светодиоды будут слишком навязчиво «мельтешить». Это время тоже можно подстроить на свой вкус в зависимости от размеров светодиодных индикаторов и личных предпочтений. Но для этого придётся менять резисторы.
Пиковые детекторы С5.2, С6.2, С7.2, С8.2 выполняют аналогичные функции и используются для определения уровня индикации точек. Время полного убывания сигнала на них составляет примерно 1с. За счет этого точки на спектроанализаторе спускаются медленнее и более продолжительное время хранят пиковые значения по частотам.
В основе схемы используется интегральный индикатор уровня LM3914 (D4 на схеме). Схема индикации построена по динамическому принципу. Генератор D1 определяет частоту развертки изображения. Счетчик D2 управляет дешифратором D5 и аналоговым мультиплексором D3. Схема поочередно выводит уровни с пиковых детекторов на индикатор уровня D4, а транзисторные ключи подключают соответствующий столбик линейного светодиодного индикатора.
Схема динамической индикации и формирования уровней устроены таким образом, что сперва последовательно отображается один кадр с заполнением столбцов, а затем кадр с точками. Для этого пиковые детекторы столбцов С5.1, С6.1, С7.1 и С8.1 подключены к младшей тетраде входов аналогового мультиплексора D3, а пиковые детекторы точек С5.2, С6.2, С7.2 и С8.2 — к старшей тетраде.
Счетчик D2 одновременно формирует двоичный адрес для подключения одного из восьми входов мультиплексора, а также для дешифратора D5, который выбирает один из столбцов линейного светодиодного индикатора. Для управления мультиплексором D3 использованы три двоичных выхода счетчика, а для дешифратора D5 — только два его младших разряда.
Когда входы мультиплексора переключаются от 0-ого до 3-его, выходы дешифратора по очереди подключают столбцы с нулевого по третий. Затем, когда выходы мультиплексора продолжают переключаться от 4-ого по 7-ой, выходы дешифратора повторно подключают столбцы с нулевого по третий.
Старший задействованный выходной бит счетчика D2 также управляет выбором режима работы индикатора уровня LM3914 «столбец/точка».
За счет высокой скорости переключения столбцов в кадре и кадров со столбцами и точками, создается иллюзия одновременного отображения на индикаторе спектрограммы с быстро перемещающимися столбцами и медленно спускающимися точками.
Пиковый детектор В1 формирует опорное напряжение для индикатора уровня D4. За счет этого не зависимо от громкости звукового сигнала заполнение столбиков светодиодной индикации всегда производится практически на всю их высоту.
Компаратор В2 отключает индикацию при отсутствии входного сигнала. Иначе пиковый детектор В1 настроит схему под уровень входной помехи, и светодиодный индикатор будет практически полностью светиться. Минимально различимый уровень входного сигнала можно подстроить опорным делителем напряжения.
На питании схемы подробно останавливаться не буду. Отмечу только, что оно двухполярное не более ±6В, а лучше ±5В. При необходимости можно перейти на однополярное питание, для этого в схеме понадобится искусственная средняя точка, и обязательно нужно будет развязать входы схемы с помощью конденсаторов.
❯ Сборка макета
После того, как схема была разработана и отлажена, можно приступать к ее изготовлению. Печатная плата была вырезана на ЧПУ. Подробнее о том, как я это делаю, можно посмотреть по ссылке.
К моменту сборки у меня возник некоторый дефицит микросхем LM3914. В целях экономии решил ставить их через панельки. И при установке микросхемы в панельку одним неловким движением был обломлен драгоценный вывод. Пришлось имплантировать его от другой микросхемы. Сточил край корпуса надфилем, чтобы добраться до основания обломленного вывода, и подпаялся к нему.
В общем, как и ожидалось, схема заработала сразу после сборки. Изображение на видео немного мельтешит из-за того, что камера различает динамическую развертку. В реальности все работает ровно. И светодиодные индикаторы остались только двухцветные, а я сразу не обратил на это внимание.
Конечно же я не удержался и заказал печатную плату в зеленке. Посадочные места сразу были предусмотрены под индикаторы и под планарные светодиодики. С этим я не прогадал, так как индикаторы закончились при сборке прототипа. Пришлось паять SMD.
Если вам понравилась эта статья, то вы можете посмотреть другие мои проекты:
1. Простая схема динамических указателей поворотов, и никаких микроконтроллеров
2. Светодиодная шкала для переменного резистора на «рассыпухе»
3. Светофор на логике со схемотехникой в стиле Beatles. Как электроника вновь стала моим хобби
4. Профессиональные методы прототипирования печатных плат. Распечатать на принтере или фрезеровать, ни слова про утюг
5. Бирдекель или арифметический детектив на операционных усилителях
6. Электронная игра «лабиринт» на сервоприводах. Никаких arduino, только жесткая логика
7. Велосипедный фонарь с динамическими поворотами. Зачем покупать на AliExpress, если можно сделать самому?
8. LPKF ProtoMat S63. Мыши плакали, кололись, но… продолжали фрезеровать печатные платы
9. Звуковой усилитель на драйвере шагового двигателя L298 и таймере 555. Да, 555-й может и спеть
Комментарии (18)
axe_chita
00.00.0000 00:00+1Классно! А история в начале, про недовольного/довольного заказчика, вообще зачетная!
OldFashionedEngineer Автор
00.00.0000 00:00+1Мне в этом плане повезло. Это был один из моих первых проектов по работе, и практически сразу такая наука. Табло заказчику вышло по цене новых жигулей.
w0lf
00.00.0000 00:00+2Lm3914, мелкая логика и светодиоды :) У меня на таком собран осциллографический пробник. Практического применения конечно чуть больше чем 0.
OldFashionedEngineer Автор
00.00.0000 00:00Как учебный проект интересная задумка. Надо эту идею прокачать
w0lf
00.00.0000 00:00+1Ну в моём случае это незакрытый гештальт из детства, тогда я собрал осциллографический пробник по схеме из журнала Радио (11/88) но запустить не смог т.к. в схеме требовался низквольный люминисцентный индикатор а все что удавалось найти были высоковольтными. А применить светодиоды тогда я не догадался, мелкий был.
OldFashionedEngineer Автор
00.00.0000 00:00Сколько этих гештальтов из детства осталось, надо список составить, и реализовывать. Пока тот период, когда дети самостоятельные, с внуков ещё не предвидется)))
HardWrMan
00.00.0000 00:00Ну, не низковольтный а обычный VFD от калькулятора, они все 12 вольтовые, но и от 9в будут светиться достаточно ярко. Сам порывался но не дособрал сей пробник для наладки Орион-128.2, который я таки смог собрать на готовой плате, подаренной мне дядей. На тот момент я справился тупо пробником ИЛЗ-01, который тогда у меня был. А теперь хочется собрать да, но не на VFD, которые тоже ещё пока есть, а на линейках светодиодов, которые остались от одного 24х портового свича, как раз 24 по 3шт в удобной формовке. Ну и применить CPLD для развёртки.
Muzzy0
00.00.0000 00:00А можно схему?
w0lf
00.00.0000 00:00+1Схема - кадавр из нескольких похожих схем. То что получилось в итоге я не рисовал, к сожалению. За основу взял вот эту: http://rfanat.ru/s17/iz-oscil.html . Использовал светодиодный индикатор 8x8 типа. Генератор развертки применил отсюда https://www.rlocman.ru/shem/schematics.html?di=52571 на 3 элементах 4011, так как генератор на 2 элементах, как на исходной схеме у меня работал неустойчиво при малых значениях ёмкости. Цепь установки нуля и усиления по вертикали для LM3914 взял отсюда https://kazus.ru/shemes/showpage/0/1005/1.html .
DvoiNic
00.00.0000 00:00+1Пришлось имплантировать его от другой микросхемы. Сточил край корпуса надфилем, чтобы добраться до основания обломленного вывода, и подпаялся к нему.
И сказал Айболит: «Не беда!
Подавай-ка его сюда!
Я пришью ему новые ножки,
Он опять побежит по дорожке».
И принесли к нему зайку,
Такого больного, хромого,
И доктор пришил ему ножки,
И заинька прыгает снова.
©
зы. "Доктор, Айболит, а может, не надо? — у меня и так уже 16 ног!"OldFashionedEngineer Автор
00.00.0000 00:00+1Надо было, там полезный вывод отвалился. Я электроникой начинал заниматься с разборки старых телеков и прочего б/у оборудования. Наращивать ноги - это привычная практика.
HardWrMan
Очень интересно. Только не понятно как именно происходит преобразование АЦП. Все подобные индикаторы с цифровой индикацией я видел именно с АЦП. Например, вот схема индикатора уровня у "Меркурий 402 Стерео":
Здесь компаратор собран на ОУ а ЦАП напряжения для сравнения логарифмический линейкой сопротивлений на выходах дешифратора. Видел так же схему где цап был не логарифмический а весовой, но суть та же: сравнение уровня для принятия решения зажигать светодиод или нет. Ну а на входе обычный интегратор по схеме удвоения напряжения.
HardWrMan
А, почитал за LM3914N, там АЦП прямого преобразования встроен. Вопрос снимаю. Однако, это не совсем на "россыпухе" тогда получается, можно было спуститься ещё ниже! :)
OldFashionedEngineer Автор
LM3914 имеет два режима работы, может отображать точку или столбец. Повторять это на рассыпухе очень хлопотно по деталям.
HardWrMan
Схема выше работает именно как перемещающиеся точки. Пример в этом видео:
У своего в 90х я делал небольшую доработку и он начинал отображать линии. Не уверен за совмещение режимов, скорее всего не получится с наскоку, но технически даже совмещённый режим не сильно сложен в реализации на россыпухе. Но тут, как говорится, хозяин конечно барин.
OldFashionedEngineer Автор
Сделать прыгающую точку вместо столбики несложно. А вот переключение режимов уже больше деталей потребует. Да и мне в этом проекте было интереснее именно динамическую индикацию реализовать.
Магнитофон зачётный!