Есть идея - амплитуду вообще не анализировать. А вот ШИМ организовать так - после того, как определилась частота - включаем соответствующий светодиод на максимум яркости, каждый последующий шаг в главном цикле для него - уменьшение значения ШИМа на определённую величину (от этого зависит плавность затухания). Если есть опять эта частота - опять включение максимальной яркости. При таком подходе ЦМУ будет работать при большом разбросе входных параметров звука и при этом оставаться с одной стороны - динамичной, т.к. сразу реагируем на определение частоты, так и достаточно плавной, а не дёрганой - за счёт постепенного затухания в каналах.
Далее, насчёт алгоритма самой работы всей программы.
По моему мнению, использовать 2 таймера нельзя. Мы будем ломать ШИМ!
В главном цикле анализируем флаг - срабатывание компаратора. Расчёт частоты здесь же, в главном цикле, при срабатывании этого флага. Для опознанного канала выставляем максимальную яркость, для остальных - уменьшаем значения на определённую величину - для плавного затухания. При срабатывании таймера Pulse увеличиваем 2 переменные - К для расчёта частоты и переменную для ШИМа. Если переменная для ШИМа стала 255 - сброс в 0. При совпадении значений яркости каналов с переменной ШИМа - соответственное манипулирование светодиодами. Также желательно ввести таблицу логарифмической зависимости яркости для более плавного затухания.
Надеюсь, описал более-менее понятно. Незнаю, смогу ли в ближайшие дни попробовать, но буду пробовать обязательно 
Цифровые фильтры для ЦМУ
Сообщений 31 страница 38 из 38
Поделиться312011-06-14 09:22:57
Поделиться322011-06-14 11:02:21
очень интересная задумка!
Поделиться332011-06-21 13:04:04
Круто! Я еще когда делал недоумевал, зачем он так усложнил конструкцию аналоговыми фильтрами.
Не думаете сделать версии для индикаторов 20х2 и 16х4? И, возможно, имеет смысл сделать версию с разгоном - типичный М8 вполне стабильно на 25 Мгц работает.
Поделиться342011-06-21 13:21:53
И вдогонку мысль - хватит ли ресурсов контроллера для формирования аппаратного ШИМа на 4 (для М8) или 6 (для М88) каналов для ЦМУ? Многим пользователям этого вполне достаточно, а вот конструкция насколько бы упростилась!
Поделиться352011-06-21 22:58:46
Для аппаратного ШИМа есть препятствие - таймер1 занят и без него никак. Можно сделать программный ШИМ, хотя это немного замедлит цикл, но зато он будет на все 8 или 16 каналов.
Какой, по вашему мнению, должен быть алгоритм программного ШИМа? Если его повесить на другой таймер, он будет пересекаться с таймером1, и ничего хорошего из этого не будет. Или то не будет работать, или другое. А попробовать хочется на одном камне и анализ, и ШИМ реализовать.
Поделиться362011-06-24 09:11:59
Mrshilov
Какой уровень аудио сигнала наиболее оптимален для http://ifolder.ru/24265228 ?
Можно сразу с линейного выхода брать (250-750 мВ), или всё же нужен предварительный усилитель?
Хочу плату развести, потому и спрашиваю, на что закладываться.
Поделиться372011-06-24 17:43:54
Пока в раздумьях: нужен ли фоновый канал? Если да, то он должен быть девятым? Или всего 7 цветовых плюс восьмой - фоновый?
Логично 7 каналов (Каждый Охотник Желает Знать Где Сидит Фазан) + 1 фон. И весь спектр радуги охватим, и 8 каналов - число удобное - 1 байт или 1 ULN2803.
А ещё лучше всё-таки 8 каналов задействовать и в режиме фона - в виде разных бегущих огней.
Или эти режимы - опционально.
А для совершенного минимализма можно использовать микрофонный усилитель отсюда - http://www.rlocman.ru/shem/schematics.html?di=65755 - рисунок 3.
Поделиться382012-05-30 09:13:30
The "Beat/Music Detection" code you have always wanted
Код на Ардуине, но вполне понятен. Человек выделяет НЧ и ВЧ, код простейший. На входе 2 фильтра.
http://arduino.cc/forum/index.php?topic=50021.0
Для какой нибудь ЦМУ начального уровня можно взять за основу.