Выберите язык

На страницах журналов можно встретить много схем и описаний музыкальных звонков, но все они имеют один недостаток - число мелодий ограничено (не более 16), поэтому они довольно быстро запоминаются и надоедают. Предлагаемое устройство способно синтезировать до 120 мелодий, которые воспроизводятся последовательно с каждым следующим нажатием звонковой кнопки.

Принципиальная схема звонка изображена на рисунке. Его основа - микроконтроллер AT90S8515-8PI фирмы ATMEL. При нажатии на звонковую кнопку SB 1 включается питание устройства, начинает работать программа, записанная в память микроконтроллера, и на выводе 39 (РАО) появляется напряжение лог. 1. В результате открывается транзистор VT1, срабатывает реле К1 и своими контактами К 1.1 блокирует кнопку звонка.

Музыкальный звонок на 120 мелодий

Для формирования колебаний 3Ч используется таймер микроконтроллера и режим его работы на переключение внешнего вывода PD5 (для получения нужной звуковой частоты частоту работы таймера нужно умножить на два). Сигнал, снимаемый с этого вывода, усиливается составным транзистором VT2VT3, в коллекторную цепь которого включена динамическая головка ВА1. Для регулирования громкости последовательно с ней можно включить подстроечный резистор R5 (изображен штриховой линией).

После проигрывания мелодии программа записывает в энергонезависимую память (EEPROM) микроконтроллера указатель на следующую мелодию, высокий уровень на его выводе 39 сменяется низким и реле разрывает цепь питания до следующего нажатия на кнопку SB1.

Мелодии для звонка взяты из программы Melody Player for Motorola (находится в архиве mp4m.rar). Для конвертирования мелодий в ассемблерный вид написана программа motcvt (находится в архиве motcvt.гаг). Используя ее, нетрудно изменить/добавить/убрать любую мелодию. При запуске в командной строке указывают имя файла с мелодиями от mp4m и имя, под которым надо записать результирующий файл (например, mel.inc).

Исходные тексты программы для микроконтроллера находятся в архиве zvonok.rar, основные моменты прокомментированы. При использовании кварцевого резонатора на другую частоту необходимо в строке .equ fsck = 3618400 файла zvonok.asm изменить значение частоты (3618400) на фактически используемое (в герцах). Все остальное пересчитает ассемблер. Программа написана и отлажена с помощью AVRStudio 4.0 Build 181.

Источник питания U1 - любой стабилизированный с выходным напряжением 5 В (можно использовать и батарею, составленную из гальванических элементов или аккумуляторов). Вместо BESTAR BT-5S допустимо применение любого реле с напряжением срабатывания не более 4,5 В и контактами, рассчитанными на коммутацию сетевого напряжения 220 В.

В процессе отладки устройства обнаружено, что содержимое энергонезависимой памяти данных микроконтроллера может испортиться, если после выключения питающее напряжение падает до 0 медленно (более 10 мс). Дело в том, что при плавном его понижении микроконтроллер некоторое время продолжает работать, а это может вызвать неверные декодирование и (или) выборку команд, что, в свою очередь, способно спровоцировать несанкционированную запись в EEPROM. Для предотвращения порчи содержимого памяти можно использовать так называемый детектор понижения напряжения питания (отечественный КР1171СП47 или его зарубежный аналог PST529), который при понижении напряжения питания ниже установленного порога выдает сигнал Reset, останавливая тем самым работу микроконтроллера. Автор для этой цели использовал резистор R6, подключенный к выходу источника питания в качестве дополнительной нагрузки (на схеме показан штриховой линией).

Файлы проекта

Автор: М.Белецкий, г.Уфа