Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


2364
Индикатор уровня звукового на МК


В бытовой электронике для индикации уровня сигнала используют всевозможные индикаторы уровня. Десять лет назад они, в основном, были стрелочными, но на современном этапе развития микроэлектроники используют светодиодные или газоразрядные индикаторы совместно со специализированными микросхемами. Индикатор, предлагаемый автором, — светодиодный, 16-разрядный. Он выполнен на доступных элементах как автономное, функционально завершенное устройство и может использоваться в звуковых усилителях, эквалайзерах и магнитофонах для индикации заряда аккумулятора и т.п.

В основе схемы (рис. 6.1) заложен принцип преобразования аналогового сигнала в цифровой. Для этого используется дешевый микроконтроллер ATtinyl5 от компании Atmel [3], имеющий в своем составе 10-разрядный АЦП. Для микроконтроллерного моделирования этот пример является наглядным пособием по программированию.

Индикатор уровня собран на четырех микросхемах:

• IC1 — микроконтроллер для преобразования входного сигнала в цифровой код;

• IC2 — преобразование цифрового кода в сигналы управления индикатором [6];

• ICЗА — согласование уровня входного звукового сигнала и уровня АЦП;

• IC3B — фильтрация и интегрирование звукового сигнала;

• IC4 — стабилизация питающего напряжения и формирование 5 В для питания схемы управления.

Индикатор уровня имеет 16-разрядную шкалу, использует две линейки по 10 разрядов индикатора (при этом четыре разряда не используются) или три линейки по шесть разрядов индикатора.

Измерительный канал не имеет схемы выборки и хранения [8]. Интегратор и фильтр верхних частот, построены на IC3. Входной усилитель IC3A реализует регулировку коэффициента усиления входного сигнала от одно- до двукратного усиления.


Поскольку питание операционного усилителя — однополярное, необходимо согласовать уровень входного звукового сигнала с уровнем АЦП. Эту функцию выполняет смещение IC3B до определенного напряжения на выходе с помощью делителя R20, R21. Одновременно IC3B интегрирует входной сигнал и фильтрует высокочастотную составляющую звука. Совмещение интегратора и фильтра не очень хорошо отражается на качестве интегрирования звукового сигнала — этот пробел можно заполнить программной оцифровкой и обработкой звукового сигнала. Однако в программе микроконтроллера отсутствует цифровая фильтрация и интеграция звукового сигнала, поскольку это требует мощных математических ресурсов. Для решения задачи индикации уровня это излишне, поэтому микроконтроллер работает в ненагружен-ном режиме.

На выходе порта В микроконтроллера формируется шестнадцате-ричный код с изменением в сторону роста. Дешифратор IC2 преобразует этот код в напряжение низкого логического нуля на одном из выво-

дов [6]. В результате соответствующий светодиод начинает светиться. Засветка светодиодов происходит в динамическом режиме, что позволяет уменьшить ток потребления от источника питания до минимума.

Программа

Ассемблерный код программы представлен в листинге 6.1.

В начале программы настраивается конфигурация порта и АЦП. Алгоритм прост: опрашивается аналоговый вход микроконтроллера, и аналоговый сигнал преобразуется в цифровой код. В момент опроса и преобразования АЦП желательно остановить все процессы в микроконтроллере [9] (окончательно в рассматриваемой программе данная функция реализована в "спящем" режиме). Для этого организован цикл в 26 тактов. Согласно документации на микроконтроллер, для преобразования необходимо максимум 25 тактов [3]. Фактически, эта функция дублирует "спящий" режим процессора.

Как только АЦП закончил преобразование, генерируется прерывание от АЦП, и по вектору прерывания продолжается работа программы. После преобразования и паузы в 25 тактов организован цикл увеличения на единицу временного регистр tmp (R16). Поскольку разрядность АЦП составляет 10 разрядов, результат преобразования максимального аналогового уровня будет иметь 1024 отсчета. Для получения 16 отсчетов (потому что дешифратор и индикатор — 16 разрядные) необходимо согласовать преобразование с помощью коэффициента деления. Для данного случая коэффициент деления 1024/16 = 64. Однако, ввиду отсутствия 17-го разряда, автор выбрал коэффициент деления 63.

Дешифратор не может включить все выводы выходного логического сигнала одновременно, поэтому программа реализует пошаговое увеличение уровня с шагом в 63 отсчета и выводом соответствующего кода на дешифратор. Если значение набранного уровня больше, чем код преобразованного аналогового сигнала, то программа возвращается в начало. Соответственно, зажигаются только те светодиоды, которые имеют меньший уровень или совпадают с отсчетом уровня аналогового сигнала. Для детального визуального различия разрядов светодиодной матрицы организована временная задержка подпрограммой zader.

Сканирование аналогового входа происходит с частотой, равной тактовой частоте микроконтроллера, деленной на 16, чтобы аналого-цифровое преобразование происходило с частотой 50-200 кГц (согласно документации на микроконтроллер [3]). Деление тактовой частоты микроконтроллера реализовано в регистре ADCSR. На случай сбоя по питанию существует подпрограмма SleepReset.

Шестнадцатеричный код программы, который занимает в памяти всего лишь 100 байт, представлен в листинге 6.2.

Листинг 6.2. Шестнадцатеричный код программы для индикатора уровня звукового сигнала


Любители моделирования спецэффектов могут добавить в программу следующие эффекты:

• при включении питания эффект маяка — движение четырех засветок светодиодов от минимума к максимуму шкалы индикатора и обратно;

• при перегрузке на входе уровня звука — хаотическая засветка светодиодов индикатора;

• при окончании музыкального исполнения — эффект "Падающая капля", когда уровень звука падает, и верхняя ("максимальная") засветка медленно движется в направлении "минимума" индикатора.

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

Плата

Монтажная схема платы индикатора уровня представлена на рис. 6.2, а схема разводки — на рис. 6.3. Плата изготавливается из двухстороннего текстолита или на макетной плате (рис. 6.4). Размеры платы могут быть приспособлены для установки в бытовую аппаратуру. На плате присутствуют два разъема (при монтаже внутри аппарата можно обойтись без разъемов):

• XI — для подключения нестабилизированного напряжения 7-9 В;

• Х2 — для подключения одного из каналов звукового сигнала.

Другие компоненты платы:

• индикатор 10-разрядный Kingbright DC763HWA;

• 1С 1 — микроконтролдлер ATtiny 15L-1 PI в DIP корпусе;

• IC2 — 74LS154 или советский аналог К155ИДЗ;

• IC3 — любой операционный усилитель с питанием 5 В (автор использовал LM358);

• IC4 — стабилизатор 5 В 78L05.

Ток потребления схемы с К155ИДЗ составляет приблизительно 70 мА, а для варианта с микросхемой 74LS154 — приблизительно 30 мА. Максимальный выходной ток стабилизатора 78L05 — 140 мА. В наличии запас по току, что очень важно для миниатюризации устройства.

Настройка схемы

На схему подается нестабилизированное питание 7 В. Перед настройкой на панельку микроконтроллера в плате ничего не устанавли-

вается. От линейного выхода бытового магнитофона подается звуковой сигнал на вход индикатора уровня. На аналоговом входе микроконтроллера (вывод 2 микросхемы) проверяется напряжение, которое не должно превышать 2,5 В.

При подаче внешнего звукового сигнала на вход платы настраивается максимальный уровень 2,5 В с помощью подстраиваемого резистора R23. Начальный уровень на АЦП микроконтроллера подбирается резистором R21. В случае, если звуковой сигнал имеет большой уровень напряжения, необходимо установить делитель напряжения. Для этого от вывода 3 микросхемы IC3A к "земле" подключается резистор делителя

(подбирается экспериментально). Если звуковой сигнал имеет маленький уровень напряжения, то необходимо поэтапно увеличить сопротивление R22 и R24 для изменения коэффициента усиления операционных усилителей. Эту операцию необходимо проводить очень осторожно во избежание насыщения ОУ при усилении сигнала.

Как только микроконтроллер установлен на панельку платы, и включено питание, должен засветиться первый светодиод (необходимый начальный уровень) индикаторной линейки. При подаче звукового сигнала индикатор отображает уровень засветкой светодиодов в такт музыкального сопровождения. Поскольку сканирование сигнала происходит с частотой около 50 кГц, то, возможно, понадобится большее интегрирование уровня сигнала, уменьшение эффекта "раздражающего мерцания" в результате резонанса некоторых звуковых гармоник и частоты преобразования АЦП. Для этого к С5 добавляется дополнительно емкость 0,1-100 мкФ. Необходимый результат достигается экспериментально в зависимости от применяемого микроконтроллера (внутренняя настройка тактовой частоты процессора может отличаться).

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




Файлы к статье Индикатор уровня звукового на МК

Категория: Устройства на микроконтроллерах | Добавил: Администратор (23.10.2011)
Просмотров: 13843 | Рейтинг: 0.0/0


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024