Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Музыкальный звонок на микроконтроллере

1Большинство дверных звонков, применяемых в быту, ввиду своей дешевизны издают простые звуки, например, типа ударов гонга, птичья трель или одноголосная мелодия, которые воспроизводится однообразно при каждом нажатии кнопки. Если возникает необходимость сменить мелодию в подобных звонках, то возникают заметные осложнения.

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

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

 

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

 

Основные характеристики музыкального звонка:

Частотный диапазон 5 октав
Нижний предел диапазона нота «До» большой октавы (65,4 Гц)
Верхний предел диапазона нота «До» 4-й октавы (2093 Гц)
Темп проигрывания, такт/мин от 45 до 240
Поддержка переменного темпа да
Поддержка типов нот легато, нон легато, стаккато и пауза
Проигрывание ноттриолей да
Поддержка полутонов да
Длительность ноты от 1/1 до 1/32
Длительность нот с точкой от 1/2 до 1/32
Длина массива мелодии произвольная
Число мелодий в массиве ограничено емкостью ЭСПЗУ
Регулировка громкости да
Ток потребления в режиме:
проигрывания / пауза /
микропотребление
до 250 мА /
6,5 — 7,5мА /
30 мкА
Питание от сети и батареек (3 шт. по 1,5 В)

 

 

Описание схемы музыкального звонка
В основе любого музыкального звонка лежит генератор образцовой частоты, программно-управляемый делитель частоты, генератор временного интервала времени и вспомогательные элементы старт/стоп (рис.1). По этой концепции выполнен музыкальный звонок в [1]. Другим вариантом воплощения звонка является применение микропроцессора Z80 со стандартной обвязкой и простейшим ЦАП для формирования звука [2], который рассчитан для проигрывания WAV файлов длительностью около 3 с, что делает не столь эффективным использование ПЗУ объемом 64 КБ.

 

2

 Рис. 1

 

Самым близким к оптимальному решению является звонок в [3], где был применен МК ATtiny2313, в котором в той или иной мере реализована структура из рис.1 на программном уровне, и послужил в качестве прототипа для данного музыкального звонка. Упомянутый МК имеет объем ЭСПЗУ для программ 2 Кбайта, и его недостаточно для массива нот мелодии, так как любая команда управляющей программы состоит из 2-х байт, которые и «съедают» определенный объем из адресного пространства для массива нот. Ввиду этих особенностей в авторском варианте в [3] число мелодий составляет всего лишь 4. В предлагаемом звонке используется более «древний» МК типа AT89C2051 с тем же объемом ЭСПЗУ 2 КБ. Наличие в его системе большинства однобайтных команд позволяет выиграть дополнительное пространство ЭСПЗУ для массива нот, а саму программу написать на языке Ассемблер для получения более компактного исполняемого кода. С точки зрения интерфейса ввода/вывода эти МК совместимы, у них также совпадают по расположению и функциональному назначению выводы.

 

3

 Рис. 2. Схема музыкального звонка

Схема музыкального звонка (рис.2) изначально предполагает универсальное питание: как от батареек, так и от сети 220 В / 50 Гц, при желании можно оставить только один тип питания. Учитывая специфику режима микропотребления МК, его запуск выполняется через вспомогательную цепь SA1R2C1VD1, которая дополняет стандартную цепь начального сброса. Цепь R2C1 служит для формирования сигнала лог. «0» и принудительного его удержания на время инициализации при первом включении питания, в дальнейшем она влияния на работу звонка не оказывает.

 

4

 Рис. 3. Включение лампы

 

Цепь SA2R3C3 служит для фиксации повторения мелодии. SA2 надо замкнуть до окончания проигрывания мелодии, иначе будет проигрываться первая мелодия из массива, адрес которой задается при первом включении питания. Индикатор HL1, управляемый ключом на VT1, предназначен для световой сигнализации проигрывания мелодии и может быть применен для подсветки дверной кнопки или корпуса звонка. При необходимости последовательно с HL1 можно включить светодиод оптрона, который через симистор включает лампу (рис.3). Такая ситуация очень часто возникает, когда в квартире находятся люди с ослабленным слухом или спят маленькие дети, и громкий звук нежелателен, особенно в ночное время. Номинал резистора R6 (рис.2) в этом случае следует уменьшить до 75 Ом.

 

Сетевой источник питания содержит: понижающий трансформатор, выпрямительный мост, сглаживающий фильтр и стабилизатор напряжения. Коммутация питание сеть/батарейки выполнена на диодах VD3, VD4 (автоматически определяется наличие напряжения в сети и батареек). Конденсатор C9 предназначен для сглаживания бросков напряжения при коммутации и подавления импульсных помех при работе МК.

 

Программа управления
Для управления всей схемной части в память программ МК записывается программа, которая и определяет режим работы всего музыкального звонка. Ввиду малого объема памяти программ МК, управляющая программа написана на языке Assembler-51. По структуре программа условно поделена на следующие части:
• основная программа;
• подпрограмма обслуживания прерываний по таймеру T/C0;
• подпрограмма обслуживания прерываний по таймеру T/C1;
• подпрограмма обслуживания прерываний по входу INT0;
• таблица размерности и типа ноты;
• таблица темпа мелодии;
• таблица частоты ноты;
• массив нот мелодий.
Основная программа выполняет следующие операции: инициализация, загрузка нот, отслеживание конца мелодии и конца массива нот. При инициализации предусмотрена проверка первого включения, которая сводится к проверке состояния порта P3.2. Если на нем уровень лог. «0», то программа воспринимает его как первое включение (время удержания лог. «0» определяется параметрами цепи R1C2 к выводу 6 DD1), если лог. «1», то это повторный запуск по выводу сброса, и этот сигнал формируется дифференцирующей цепью R2C1 и защитным диодом VD1. После инициализации следует загрузка кода ноты, состоящего из  2 байт, которые проверяются на наличие конца мелодии, его признаком является установка в лог. «1» младшей тетрады второго байта. Если это условие выполнено, то следует проверка конца массива нот, если нет, то следует переход на загрузку параметров ноты, активацию флажков и проигрывание ноты. При контроле конца мелодии и массива нот в программе предусмотрен перевод МК в режим микропотребления, выполняется путем записи лог. «1» в биты 0 и 1 регистра PCON, выход из этого режима происходит путем подачи положительного импульса длительностью не менее 24 тактов кварцевого генератора на вывод 1 DD1. По окончанию проигрывания ноты выполняется переход на загрузку очередной пары байтов очередной ноты.

В качестве признака конца массива нот необходимо, чтобы последующая пара байтов имела значение 0FFh. При соблюдении данного условия в пользовательский указатель массива перезаписывается начальный адрес массива.

Каждая нота состоит из пары байтов, поэтому массив нот для любой мелодии должен содержать четное число байт. Распределение и назначение битов в байтах кода ноты приведены в табл.1.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *