Анализатор спектра на ATmega8 + LCD
Мы думаем, что анализатор спектра стал бы неплохим дополнением самодельного усилителя или эквалайзера, и не только украшением...
В этой статье описывается, как можно легко сделать с минимального количества деталей и пары прямых (желательно) рук весьма полезный девайс.
И так, это схема:
Обратите внимание что входной сигнал должен быть от 0 до 5В (с амплитудой не более 2.5В). Если ваш сигнал превышает данные значения вы должны пропустить его через резистивный делитель напряжения. Проверьте сигнал с помощью осциллографа на входе микроконтроллера не обрезается ли он – это очень важно. Если сигнал обрезается, то анализатор будет ужасно вычислять спектр.
Переменными резисторами R13 и R12 вы можете изменять входной сигнал по напряжению. Далее сигнал делиться на: высокочастотный (900hz – бесконечность) пропускается на микроконтроллер и низкочастотный (0 – 900hz) отсекается фильтром Чебышева.
Если вы используете дисплей 16*2 необходимо прошить микроконтроллер программой “16*2 program”. В программе в первых строчках, есть параметр “CZULOSC” – им вы можете калибровать чувствительность. Впишите туда число от 15 до 40 и проверьте как это работает. Соберите файл в компиляторе BASCOM и прошейте ваш atmega8. PCB’s – файлы EAGLE , необходимо использовать версию 4.11. Вы должны установить fusebits в atmega, как “внешний кварц высокой частоты” (CKOPT=0, все остальные=1).
Также вы можете экспериментировать с более высокочастотным кварцем. В проекте используется кварц 16MHz, но я однажды поставил 27MHz, и спектр отображался намного быстрее. В этом случае Вы должны изменить строку “$crystal = 16000000 ″, необходимо указать там верную частоту. Но если ваш жидкокристаллический дисплей работает медленно, этим вы ничего не сможете изменить. Я проверял с 16*2 и 24*2 дисплеями. Дисплеи 16*2 были намного медленнее чем 24*2. Это – немного абсурдно, потому что с большим LCD (24*2) программа имеет больше команд для вычисления спектра, но в конфигурации 24*2 спектр отображался намного быстрее чем 16*2.
Дисплей ДОЛЖЕН быть на основе чипа HD44780 – другие могут работать некорректно.
Данная схема корректно работает с микроконтроллером ATmega8L.
Если у вас работает только 8 первых столбцов на дисплее то проблема решается изменением строк в исходных текстах
Sample_h:
Config Adc = Single , Prescaler = 2 , Reference = Avcc
на строки
Sample_h:
Config Adc = Single , Prescaler = 4 , Reference = Avcc
Номиналы всех резисторов и конденсаторов должны точно соответствовать указанным на схеме, иначе отображаемый спектр не будет соответствовать действительности.
Рекомендуется использовать дисплей с негативным типом подсветки – выглядит намного красивее J.
Прошивки можно скачать тут.
Вопросы, как всегда на ФОРУМ