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

В данной статье мы рассмотрим каким образом можно проигрывать музыкальные ноты при помощи PIC-микроконтроллера. Музыкальные ноты представляют из себя обычные звуковые частоты. И если мы точно знаем частоту определенной ноты, то мы можем запрограммировать микроконтроллер для проигрывания этой ноты через один пин ввода/вывода и звукоизлучатель.
В данном проекте мы рассмотрим проигрывание популярной композиции Happy Birthday To You при помощи микроконтроллера PIC16F628A и пьезоизлучателя.

Немного теории

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

Ноты других октав могут быть получены путем умножения или деления данных частот на 2. Например нота До следующей октавы будет иметь частоту 524 Гц.

Частоты всех нот можно найти в данной таблице:

Звуки нот могут быть сгенерированы прямоугольным сигналом нужной частоты. Т.о. для того, чтобы воспроизвести ноту при помощи микроконтроллера, нам необходимо знать частоту и длительность. Прямоугольный сигнал может быть сгенерирован на выводе МК при помощи переключения вывода с высокого уровня на низкий и наоборот. Также, можно задействовать ШИМ (широтно-импульсную модуляцию). В данном проекте мы выберем первый способ.

Схемотехника

Схема устройства очень проста. Вывод RB0 микроконтроллера PIC16F628A используется для генерирования прямоугольный импульсов заданной частоты. Т.к. выводы микроконтроллера не могут выдерживать ток более чем 25 мА, то пьезоизлучатель нельзя напрямую подсоединять к выводу МК. Поэтому используется npn транзистор BC547. Желательно, еще использовать RC-фильтр, но здесь, для упрощения схемы он не показан.

Программное обеспечение

Генерирование аудио-частот реализовать на mikroC Pro очень просто. В нем уже есть встроенная библиотека для работы со звуком. Библиотека содержит две основные функции:

Sound_Init(char *snd_port, char snd_pin) : задает соответствующий вывод микроконтроллера для генерации звука, например:
Sound_Init(&PORTB,0) задаст пин RB0 для вывода звука.

Sound_Play(unsigned freq_in_hz, unsigned duration_ms) : Генерирует прямоугольный сигнал

/* Hap py Birth Day to you, Hap py birth day to
C4 C4 D4 C4 F4 E4 C4 C4 D4 C4 G4 */
unsigned int notes = { 262, 262, 294, 262, 349, 330, 262, 262, 294, 262, 392,

/* you, Hap py Birth Day dear xxxx Hap py birth
F4 C4 C4 C5 A4 F4 E4 D4 B4b B4b A4 */
349, 262, 262, 523, 440, 349, 330, 294, 466, 466, 440,

/* day to you
F4 G4 F4 */
349, 392, 349
};

Ниже представлено видео воспроизведения:

Исходный код проекта и прошивка: (cкачиваний: 437)

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

На схеме указана микросхема УМС-7, но по этой схеме можно смело собирать звонок с применением микросхемы УМС-8, цоколевка у них одинаковая, но есть небольшие различия в величине питающего напряжении. На следующем рисунке можно увидеть внешний вид микросхемы, в стандартном Dip корпусе, 14 ножек:

Собранное мною устройство имеет 2 кнопки - Play и Выбор . Выглядит оно следующим образом:

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

Кнопку Play (SA1), в случае если решите собрать, с целью использовать, как квартирный звонок, нужно продублировать (подключить параллельно две кнопки) и вывести вторую с наружной стороны входной двери. Во время звучания мелодии, нажатием на кнопку Выбор (SA2), можно сменить звучащую мелодию. Схема звонка довольно экономичная и позволяет питать устройство от двух батареек АА или ААА. Для легкой замены батареек использовал стандартный заводской отсек под 2 батарейки.

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

Если кто-то захочет использовать мой вариант печатной платы для программы sprint layout, в конце статьи можно будет скачать по ссылке . При выводе платы на принтер, используем прямую печать. В микросхемах зашиты обычно 2-3 мелодии, в некоторых дополнительно есть звуковой сигнал, подобный сигналу электронного будильника. Исключение составляет микросхема УМС-8-08, в ней зашиты 8 мелодий. Ознакомиться со списком мелодий можно на следующем рисунке:

Также приведу вариант схемы с кнопкой остановки звучания мелодии:

КТ315 можно заменить на другой маломощный транзистор структуры n-p-n, например, на КТ3102. Динамик, в качестве эксперимента подключал мощностью 2 ватта, звучало нормально. Остановился, в первую очередь из-за габаритов устройства на динамике 0.5 Ватт, 8 Ом, который и установил в звонок. Громкость звонка, при применении динамика с сопротивлением 4 Ом, будет несколько выше. Приведу еще один вариант рисунка подключения микросхемы:

В этой схеме также предусмотрена кнопка остановки звучания. Начинающим, у кого маловато опыта в пайке, чтобы не перегреть микросхему при впаивании, порекомендую впаять в плату панельку, а микросхему вставлять уже в эту панельку. Здесь есть дополнительный плюс: если мелодии надоедят, микросхему можно легко заменить на другую, с другим номером, набор мелодий соответственно тоже поменяется. Автор статьи - AKV.



Сломался у меня в квартире звонок. Покупать новый звонок особо не хотелось. Поэтому я решил сделать свой – музыкальный звонок. Для звонка я применил восьми битный AVR микроконтроллер Attiny13 и несколько дискретных компонентов.

Для сборки звонка понадобится:

  1. Микроконтроллер Attiny13 (с любыми индексами) 1шт.
  2. Резистор 4,7кОм 2шт.
  3. Резистор 100ом 1шт.
  4. Транзистор КТ315 (с любыми индексами) или аналогичный 1шт.
  5. Панелька DIP8 1шт.
  6. Пьезоизлучатель или динамик 1шт.
  7. Тактовая кнопка 1шт.

Для питания звонка необходимо напряжение от 3 до 5 вольт.

Транзистор необходим для усиления звука.

Всё время звонок находится в спящем режиме и потребляет очень низкий ток. По нажатию кнопки происходит прерывание на 6 (PB1) ножке микроконтроллера, звонок “просыпается” и играет мелодию, после чего он снова засыпает.

Для музыкального звонка я написал (в среде BASCOM-AVR) две прошивки:

  1. M1T13BELL.HEX – прошивка с мелодией 1
  2. M2T13BELL.HEX – прошивка с мелодией 2

Принципиальная схема звонка:

Звонок можно собирать как на печатной плате, так и на макетной. Изначально я собрал звонок на макетной плате (для тестов), а позже сделал печатную плату (проект печатной платы Sprint Layout 4.0 есть в архиве с файлами). Также есть проект звонка в Proteus (в архиве с файлами):

Тестовая версия звонка (на макетной плате):

Позже, я сделал звонок на плате:

Корпус для звонка я решил сделать из древесины, взял брусок 50мм на 35мм и вырезал в нём углубление. В качестве крышки для корпуса я применил небольшой кусочек фанеры. Далее в корпус я поместил плату звонка и разъем 3,5 “мама”.



Ребенок с самого раннего детства любит извлекать звуки из всех предметов. Самая первая игрушка это, конечно, погремушка. Но ребенок растет, и, постепенно вытесняя погремушки, в его жизнь начинают входить все новые игрушки.
Звуковые игрушки - «пищалки» (в отличие от погремушек, они упругие, и звук извлекается из них другим способом - сжатием корпуса игрушки) и разнообразные музыкальные игрушки (часто работающие на батарейках) - от мишки, способного рычать на разные голоса, до такой экзотики, как «мобильный телефон».

Особенно детей интересует, чем же там занимается папа или мама? Наблюдая, как родители работают за компьютером, дети тоже хотят поучаствовать в нажимании клавиш. Чтобы не только занять ребенка, но и помочь ему развиваться, предлагаю собрать музыкальную клавиатуру на PIC16F628A.

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

Исключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только


Сердцем устройства является микроконтроллер PIC16F628A, он считывает код нажатой клавиши и согласно программе выдает звуки или наборы звуков.
При нажатии на буквы формируются одиночные звуки различной тональности, при нажатии на цифры – сигналы тонального набора телефона, при нажатии F1-F12 наборы тональных звуков. А при нажатии на ESC проигрывается короткая мелодия.

К устройству можно подключить любую клавиатуру персонального компьютера (не USB), как старую 5-штырьковую (DIN), так и 6-штырьковую (PS/2).

На схеме указано подключение 5-штырьковой клавиатуры (DIN).

Было замечено, что клавиатура начинает работать при напряжении питания не менее 4,5 В. Поэтому устройство лучше всего питать от батареи типа «Крона» и снижать напряжение стабилизатором 78L05.

Для повышения громкости можно на динамик подать не +5 В, а +9 В с вывода 3 IC2.
А возможно, напротив, потребуется ввести регулятор громкости. Это зависит от примененного излучателя.

В качестве излучателя можно использовать пьезоизлучатель типа ЗП-22, так же, попробовать различные схемы подключения динамиков, через конденсатор или используя простой фильтр. Можно выбрать, какое звучание будет лучше.


Протестировал схему при питании от 6 Вольт, и хотя по даташиту максимальное напряжение питания МК 5,5 Вольт, проблем не обнаружил. Так, что можно запитать игрушку от 4 батареек типа АА, но на ваш страх и риск. В этом случае стабилизатор можно убрать.

--
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»


🕗 22/03/09 ⚖️ 53,37 Kb ⇣ 181 Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.

Хорош! Халява кончилась. Хочешь файлы и полезные статьи - помоги мне!

Запоминающий музыкальный звонок на PIC16F84

Иногда хочется узнать: "А не звонили ли в дверь, когда никого не было дома?". В этом поможет предлагаемый музыкальный звонок, имеющий специальную запоминающую функцию. Выполнен он на микроконтроллере популярного семейства Р/С, В результате получилось предельно простое устройство, способное воспроизводить несколько десятков мелодий и запоминать последнее нажатие кнопки звонка, если дверь не была вовремя открыта.

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

В описываемом варианте устройство воспроизводит 16 мелодий, которые выбираются случайным образом. Изменив коды управляющей программы, можно замени ib мелодии любыми другими, а также изменить их число и время звучания.

Принципиальная схема звонка изображена на рис. 1. Его основа - микроконтроллер DD1 (PIC16F84-04I/P фирмы Microchip). Тактовую частоту задает кварцевый резонатор ZQ1. Сигнал 34 снимается с вывода 7 (RB1) микроконтроллера, усиливается транзистором VT1 и воспроизводится динамической головкой ВА1.

Кнопка звонка SB1 и датчик открывания двери SF1 подключены к выводам микроконтроллера через токоограничивающие резисторы R3, R5. Конденсаторы С5 и С6 исключают самопроизвольное срабатывание звонка от помех, создаваемых электроприборами.

Устройство питается от сети переменного тока через понижающий трансформатор Т1. Напряжение вторичной обмотки выпрямляется диодным мостом VD1. постоянное напряжение стабилизируется интегральным стабилизатором DA 1.

Чертеж печатной платы и расположение деталей на ней показаны на рис. 2. Плата рассчитана на установку резисторов МЛТ. конденсаторов К50-35 (С1, С2) и КМ (остальные).

Диодный мост VD1 - КЦ405 с любым буквенным индексом. Кварцевый резонатор ZQ1 - на частоту 4 МГц. Конденсаторы C3, С4 - любые керамические емкостью 15...33 пФ. Транзистор VT1 - любой из серии КТ815. Сопротивление резистора R1 должно быть не более 40 кОм.

В качестве Т1 подойдет любой трансформатор, обеспечивающий на вторичной обмотке напряжение 9... 10 В при токе 0.3 А. В авторском варианте применен трансформатор ТС-Ш-ЗМ1. у которого число витков вторичной обмотки уменьшено на 90.

Кнопка SB1 - обычная для дверного звонка, датчик открывания двери SF1 - геркон. закрепленный на дверном косяке. На самой двери устанавливают магнит. При закрывании двери геркон под действием магнита замыкается, при открывании -размыкается. Датчик может быть любой конструкции.

Листинг программы:

(нажмите для увеличения)

Для замены мелодий ознакомимся с принципом размещения их в памяти микроконтроллера. Они располагаются в памяти программ в интервале адресов с 200Н по 3FFH. Одна нота занимает в памяти одно машинное слово. Каждая мелодия должна заканчиваться кодом 07Н. Маска M_RAND. расположенная по адресам 0079Н и 0085Н. определяет число мелодий и. соответственно, максимальное число нот в мелодии (табл. 2).

Так, если маска равна F8H (32 мелодии по 15 нот), то первая мелодия займет адреса 200H-20FH. вторая -210H-21FH.....32-я - 3F0H-3FFH. Очевидно, что каждая из них занимает 16 машинных слов, а максимальное число нот в мелодии - 15 (одно машинное слово отведено под код 07Н).

Следует отметить: если в конце мелодии нет кода 07Н. то будет воспроизводиться без остановки следующая и т. д. до тех пор. пока не встретится этот код. В данном случае (16 мелодий по 31 ноте) первая мелодия занимает адреса 200H-21FH. вторая -220H-23FH и т. д. Реальное число нот (от 1 до 31) зависит от того, в каком месте будет поставлен код 07Н. Коды нот в зависимости от их длительности и принадлежности к той или иной октаве представлены в табл. 3.

(нажмите для увеличения)

Для предварительного прослушивания мелодий можно использовать программу music.exe.

По адресу 008ВН располагается константа Wait_D. определяющая время ожидания открывания двери. Это время (в секундах) примерно равно Wait_D-2. В нашем случае константа равна 5АН (в десятичной системе - 90) и время ожидания составляет 90 · 2 = 180 с = 3 мин.

Для изменения программы необходимо загрузить файл ring.hex в шестнадцатиричный редактор (обычно он встроен в программное обеспечение программатора) и отредактировать, приняв во внимание то, что машинное слово микроконтроллера PIC16F84 имеет длину 14 бит и представлено четырехразрядным шестнадцатиричным числом. Заменять необходимо только два младших разряда, так как старшие представляют собой код инструкции. Например, в памяти по адресу 208Н находится число 3483Н, а необходимо записать код 07Н. Изменив только младшие разряды, получим число 3407Н.

Допустимо также внести изменения непосредственно в исходный текст программы (файл nng.asm). Для этого необходимо создать папку Ring в корневом каталоге любого диска, поместить туда файлы nng.asm, ring.pjt и ring.lkr. Затем в среде MPLAB v4.12 открыть проект ring.pjt и файл ring.asm. который и необходимо отредактировать. Далее запускают построение проекта и получают новый файл ring.hex.

Вверх