Главная » Звук » Дверной звонок с использованием WAV файла

Дверной звонок с использованием WAV файла

Этот электронный дверной звонок, по сути, представляет собой небольшой проигрыватель на базе ATmega328P для воспроизведения WAV файлов. Когда гость нажимает кнопку звонка, устройство активируется и воспроизводит короткий файл WAV, используя встроенный модуль PWM.

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

Файл WAV хранится во встроенной флэш-памяти микроконтроллера: внешняя память не требуется. Чтобы свести количество компонентов к минимуму, в схеме не применен фильтр низких частот, который обычно требуется на выходе ШИМ микроконтроллера AVR. Вместо этого громкоговоритель подключен через электролитический конденсатор и подстроечный резистор.

Обратите внимание, на то, что нецелесообразно подавать ШИМ сигнал непосредственно на усилитель или активные динамикам без надлежащего фильтра низких частот, поскольку это может привести к искажениям.

При подаче питания устройство немедленно воспроизводит сохраненный звук дверного звонка, и после этого микроконтроллер AVR переходит в режим ожидания с пониженным энергопотреблением. Нажатие кнопки звонка заставляет микроконтроллер выйти из режима ожидания и снова воспроизвести WAV файл.

Файл WAV должен иметь следующие характеристики: формат RIFF WAVE, 8 бит на выборку, моно и частота дискретизации 8 кГц. ATmega328P имеет в общей сложности 32 Кбайт флеш-памяти, из которых 1 Кбайт зарезервирован для прошивки. Остаток составляет 31 744 байта для WAV-файла, что достаточно для аудиофайла длиной почти четыре секунды.

Прошивка занимает диапазон адресов от 0x0000 до 0x03FF, а данные WAV начинаются с 0x0400. Если аудиофайл недоступен в формате PCM WAV, описанном выше, для его преобразования можно использовать бесплатный инструмент Audacity или ему подобный.

Инструмент hex2bin используется для преобразования файла WAV в HEX файл, пригодный для программирования в ATmega328P. Инструмент принимает двоичный файл в формате WAV, изменяет его на HEX файл формата Intel и вставляет результат в HEX файл, содержащий код AVR.

Таким образом, на выходе получаем один HEX файл, содержащий информацию о прошивке и файле WAV, который необходимо запрограммировать в ATmega328P. Весь процесс преобразования может быть запущен с помощью файла convert.bat.

Прошивка микроконтроллера определяет длину WAV-файла по информации из его заголовка и использует ее для воспроизведения содержимого файла. Готовый HEX файл под названием «tuergong.hex», содержащий как прошивку, так и файл WAV, издающий звук «динг-дон» находится в архиве, который можно скачать по ссылке в конце статьи.

Этот HEX файл можно запрограммировать непосредственно в ATmega328P. HEX файл «code.hex» в каталоге «firmware / default» содержит только прошивку, без встроенного файла WAV. Это место для начала, если вы хотите включить свой собственный файл WAV, объединив его с этим HEX файлом с помощью пакетного сценария, упомянутого выше.

Код для ATmega328P написан в AVR Studio с использованием бесплатного компилятора WinAVR C. Полный проект, включая HEX файл, можно найти в каталоге «firmware» в архиве. Фьюзы микроконтроллера должны быть запрограммированы следующим образом:

  • LOW: 0xE2
  • HIGH: 0xD9
  • EXTENDED: 0xFF

Скачать файл проекта (331,0 KiB, скачано: 240)

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

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

*