Музыкальный звонок на микроконтроллере
В предлагаемом звонке для хранения мелодий или речевых сообщений применена карта памяти SD или ММС, отформатированная под файловую систему FAT16. Воспроизводятся звуковые файлы формата WAV. Кроме звонка, устройство можно использовать как проигрыватель таких файлов.
Устройство (рис. 1) собрано на широко распространённом микроконтроллере PIC16F628A и имеет два режима работы, которые устанавливают выключателем SA1. Верхнему по схеме положению его контактов соответствует режим "Проигрыватель", а нижнему — режим "Звонок". Микроконтроллер проверяет состояние контактов выключателя только один раз, сразу после включения питания. Поэтому для смены режима необходимо отключить питание, установить выключатель в требуемое положение и затем снова подать питание.
Увеличить схему (откроется в новом окне)
В режиме "Звонок" после включения микроконтроллер DD1 производит настройку внутренних регистров, после чего переходит в спящий режим. При нажатии на кнопку SB1 ("Звонок/Воспроизведение") микроконтроллер "просыпается", о чём свидетельствует включение светодиода HL1, подаёт питающее напряжение на карту памяти, инициализирует её и ищет звуковой файл. Поиск осуществляется по расширению WAV. Найдя, микроконтроллер воспроизводит файл, отключает питание карты памяти, после чего снова "засыпает", а светодиод HL1 гаснет. При следующем нажатии на кнопку SB1 всё повторится, но будет воспроизведён следующий звуковой файл. На карту памяти можно записать до 512 мелодий или сообщений — это максимальное число записей в корневом каталоге для файловой системы FAT16. После воспроизведения всех мелодий начнётся их повторное воспроизведение. Кнопки SB2, SB3 и SB4 в этом режиме не задействованы.
В режиме "Проигрыватель" после подачи питания микроконтроллер также выполняет настройку внутренних регистров, включает питание карты памяти, проводит процедуру её инициализации, в случае успешного выполнения вспыхивает светодиод HL1. Затем выполняется поиск WAV-файла, и когда он будет найден, микроконтроллер перейдёт к опросу состояния контактов всех кнопок. При нажатии на кнопку SB1 начнётся непрерывное последовательное воспроизведение всех звуковых файлов, имеющихся на карте памяти. Нажатием на кнопку SB2 ("Стоп") можно остановить проигрывание на текущей мелодии, а кнопками SB3 ("Следующий") и SB4 ("Предыдущий") осуществляют переключение файлов, что возможно как при проигрывании, так и после остановки воспроизведения. При неудачной процедуре инициализации карты памяти микроконтроллер предпримет ещё одну попытку, и если она также окажется неудачной, прозвучат два коротких сигнала низкого тона, после чего микроконтроллер перестанет реагировать на команды.
В режиме "Звонок" при ошибке инициализации также прозвучат два коротких сигнала низкого тона, после чего микроконтроллер отключит питание карты и перейдёт в спящий режим. Если карта памяти перестанет отвечать на команды или просто "зависнет", в режиме "Проигрыватель" микроконтроллер сначала отключит, затем включит питание карты и заново ее проини-циализирует. В режиме "Звонок" после "зависания" карты микроконтроллер просто отключит питание карты и "заснёт". При отсутствии WAV-файлов на карте памяти прозвучат три коротких сигнала низкого тона, после чего в режиме "Проигрыватель" устройство перейдёт к опросу состояния контактов кнопок, при нажатии на которые будет звучать тот же предупреждающий сигнал. В режиме "Звонок" после сигнала об отсутствии WAV-файлов микроконтроллер отключит питание карты памяти и перейдёт в спящий режим. Если параметры WAV-файла не соответствуют требуемым значениям, например, неверная частота дискретизации, разрядность и т. д., прозвучит сигнал низкого тона продолжительностью одна секунда и в обоих режимах произойдёт переход к следующему файлу.
Для согласования логических уровней сигналов микроконтроллера и карты памяти установлены делители напряжения на резисторах R7, R8, R10, R13—R15. Звуковой сигнал формируется с помощью встроенного в микроконтроллер модуля ШИМ, частота работы которого в данном устройстве равна 78,12 кГц. Сформированный сигнал сглаживается фильтром R12C10 и с регулятора громкости R17 поступает на УЗЧ, собранный на микросхеме DA2 TDA2003.
Питается устройство от внешнего блока питания напряжением 9... 12 В. Питание микроконтроллера стабилизировано интегральным стабилизатором DA1 с выходным напряжением 5 В. На транзисторе VT1 собран стабилизатор напряжения 3,3 В для питания карты памяти. Управление им осуществляет микроконтроллер по линиям порта RA3. При низком логическом уровне на этой линии транзистор VT1 закрыт, напряжение на его эмиттере равно нулю. При высоком уровне транзистор открыт и питающее напряжение поступает на карту памяти. Напряжение на базе транзистора стабилизировано стабилитроном VD1.
Устройство воспроизводит звуковые файлы формата WAV (PCM, 16 кГц, 8 разрядов, моно), файлы с другими параметрами проигрываться не будут. Поэтому, если необходимо, выбранные звуковые файлы перед записью на карту памяти преобразуют с помощью программы-конвертера (имена файлов могут быть любыми). Файловая система FAT16 не пригодна для носителей информации, имеющих объём больше 2 Гбайт, поэтому это максимальный объём для карты памяти, которую можно использовать в устройстве. Были протестированы четыре карты microSD разных фирм и объёмов, это Kingston (1 Гбайт), Kingmax (512 Мбайт), Silicon Power (2 Гбайт), Transcend (1GB). ММС карты также должны работать, но я не смог это проверить из-за их отсутствия.
В устройстве применены постоянные резисторы МЛТ, переменный — СПЗ-4аМ, СПО, СП4-1, оксидные конденсаторы — импортные, остальные — керамические К10-17. Выключатель — ПД9-2, кнопки — TS-A3PS-130, но подойдут и другие аналогичные. Стабилитрон КС139А можно заменить импортным с напряжением стабилизации 3,9 В, например 1N4730. Взамен транзистора КТ503В можно применить любой из серии КТ3102, а светодиода АЛ307БМ — также любой в пластмассовом корпусе диаметром 5 мм. Микроконтроллер установлен в панель. УЗЧ TDA2003 можно заменить микросхемой TDA2002, TDA2008, К174УН14, её необходимо установить на теплоотвод площадью не менее 60 см2. Динамическая головка —любая широкополосная мощностью 2...4 Вт с сопротивлением катушки 4...8 Ом. Разъём для карты памяти самодельный, поскольку готовый найти не удалось Он изготовлен из односторонне фольгированного стеклотекстолита и медной фольги. Из стеклотекстолита изготовлена печатная плата размерами 35x40 мм, на которой сделано семь контактных площадок. К площадкам припаяны пружинящие контакты от разъёма microSD неисправного сотового телефона. По контуру карты памяти вырезана П-образная направляющая, которая закреплена на плате. Сверху на направляющую припаяна медная фольга, которая прижимает карту к пружинным контактам
Внешняя кнопка звонка дублирует SB1. При длинном соединительном проводе для устранения влияния помех рекомендуется установить конденсатор С ёмкостью 0,1... 10 мкФ, а сам провод желательно применить экранированный (экран соединяют с общим проводом). Элементы R19 и С13 устанавливают в случае самовозбуждения УЗЧ на высокой частоте. Источник питания — нестабилизированный сетевой блок питания с выходным напряжением 9... 12 В и током до 0,5 А.
Рис. 2. Печатная плата
Большинство элементов установлены на односторонней печатной плате из фольгированного стеклотекстолита, чертёж которой показан на рис. 2. Внешний вид смонтированной платы с подключённой картой памяти показан на рис. 3.
Программа для микроконтроллера написана на ассемблере в среде MPLAB. Программирование проводилось с помощью программы IC-Prog 1.05D и JDM программатора, описанного в журнале "Радио", 2004, № 2, с. 51 (А. Долгий. "Программаторы и программирование микроконтроллеров").
Радио, №4 2012г
Р. МУХУТДИНОВ,
д. Султановка Кигинского р-на, Башкортостан
Если нетрудно, проведите какой-нибудь ликбез для меня по этому поводу.
В режиме "Звонок" при нажатии на кнопку светодиод вспыхивает и гаснет один раз. Звуков нет.
Флешку форматировал несколько раз в FAT. Пробовал с файлами и без. Монтаж вроде правильный, плата скопирована из журнала.
Прошивалось программатором extra-pic, программой ICprog.
Что может быть не так???
По существу предыдущего вопроса:
воспроизводит wav файлы только PCM, 16 кГц, 8 разрядов, моно
другие не воспроизводит, для звонка этого и не надо.
Использовал для УНЧ TDA 2822
АВТОР - МОЛОДЕЦ!!! СПАСИБО!
Сделал звонок ещё в апреле, как только получил журнал.
Работает , но пропускает одну мелодию, светодиод вспыхивает, но не играет.
Следующие мелодии нормально.
Почему , не знаю. Может кто что подскажет?
Спасибо Сергей
ra1tam, сконвертируй файл с параметрами, указанными в статье и сообщении Roscoshny
Преобразуй файлы и всё будет работать, у меня было такое
Сергей
остальные играют. Я стираю всё с карты и записываю по новой.
13 играет, 21-нет. Почему?
13-играет, а 11-нет.
Попробуйте прочесть на устройстве, запомнить, какой файл не воспроизводится, и прочтите его на компе (с карты)
на этом устройстве все файлы играют, пробовал по 5 шт записывать
Как связаться с автором этого звонка?
Но прежде я бы порекомендовал проверить на другой флешке
пробовал на разных флешках
Сергей
На флешку записаны 24 файла(для проговаривания времени в часах).
В режиме звонка в данный момент 11 файл(одиннадцать часов) не говорит,
остальные 23 файла говорят.
В режиме проигрывателя доходит до 11 файла и остановка.
Пробовал стирать флешку и записывать по новой 11 файл проигрывается
но не проигрывается какой-нибудь другой.
2) для режима проигрывателя - если возникнет аналогичная ситуация, то микроконтроллер отключает питание карты, далее снова подает питание, инициализирует карту и найдя первый Wav файл переходит к опросу кнопок, то есть происходит перезагрузка карты памяти.
У вас похоже такая ситуация, на некоторой мелодии карта памяти выдает ошибку или просто зависает, сложно сказать что именно происходит, у меня с одной картой памяти была похожая ситуация, только там время от времени не играла случайная мелодия.
А какие карты памяти используете? старые? возможно на карте памяти появляются битые сектора.
пробовал и старые и новые microCD
результат тот же.
Как время будет я попробую увеличить время ожидания ответа от карты памяти в прошивке, на команды чтения.
11 мелодия проиграет когда перезапишу флешку.
карты microCD с адаптером, 128мгб, 512мгб, 2гб.
все по старому
На главной странице уже больше года висит акция
Рекомендуется скачать обновленную прошивку и перепрошить
А какой БП используете?
микруха на радиаторе )
вот сижу выбираю блок питания
Да и не мешало бы замерить, насколько падает напряжение БП. Возможно, что его хватает, а проблема в другом
Оказалось, что MMC карты таки не работают.
Поставил новую MicroSD 2Гб с переходником — и сразу запустилось.
TDA2003 обязательно на радиатор.
Вы хотите собрать схему на МК, а задаете такие дилетантские вопросы...
"Источник питания — нестабилизированный сетевой блок питания с выходным напряжением 9... 12 В и током до 0,5 А."
А на счет БП, просто нет под рукой, да и хотелось все разместить на одной плате, вот исходя из этого мне и нужна схема включения трансформатора.
Вот такая штуковина подойдет?
Выпускаются 1, 2, 3, 5, 6, 7, 8, 10, 12, 15, 18, 20, 22, 25, 27, 30 и пошло-поехало пф.
"А на счет БП, просто нет под рукой, да и хотелось все разместить на одной плате, вот исходя из этого мне и нужна схема включения трансформатора."Какая схема включения? К трансформатору добавляется диодный мост и конденсатор - получается примитивнейший БП.
19leva89, еще раз смею спросить вас, как вы собираетесь собирать столь сложное устройство, если вам даже трансформатор сложно подобрать? Надеюсь, вы в курсе, что микросхему PIC16F828 необходимо прошивать?!!
Больше 0,5 А можно, меньше - нежелательно.
Но чем больше мощность трансформатора - тем больше его размеры и вес.
К тому что написал МАСТЕР, добавлю, что слишком слабый трансформатор (дающий ток меньше, чем нужно схеме) будет перегреваться, что небезопасно, особенно если он китайский, они и так на пределе работают.
Вы собрали довольно таки сложное устройство, которое у вас сразу заработало, и задаете такие дилетантские вопросы...
Скачайте даташит на данную микросхему, посмотрите максимальную мощность, Увеличьте радиатор, ограничьте уровень сигнала...
Скорее всего это у меня радиатор дохленький, куплю по-больше)
Собрал даное устройство и прицепил к часам, для оповещения часа (в контроллере часов предусмотрен выход). Записал 12 коротеньких меллодий и плюс бой часов в конце каждой. Все прекрасно работает, но перед определенной меллодией звучит звуковой сигнал "пик". Я так понял, что это заложено в прогрмме контроллера звонка, может быть для обозначения начала. Я в программировании полный ноль и не знаю как это исправить. Может кто поможет убрать эту "пищалку" и выложит исправленную прошивку.
Заранее благодарен.
Если не пройдет, напишу автору, он зайдет в тему.
Т.е. звучал сигнал z1, z2, z3, сигнал, z5 - значит надо удалять файл, следующий после z3
Это выполнено?
Цитата:
Пробывал, скачивал тестовые файлы с нета скачал конвертер приобразовывал в этот формат, может можете тестовый wav файлик выложить?
Еще не может быть то что микросхема без буквы A
У вас программа же работает, раз идут сигналы ошибки. Скорее у вас проблемы или с флешкой или с файлами...
Спасибо! Будем ждать
тестовые файлы для звонка (скопировал с рабочего звонка )
Могу с увереностью сказать что схема работает с PIC16F628 и на PIC16F628A проверено.
У меня усилитель звука на TDA 2003, как собрал динамик работал очень тихо поменял резистор R12 вместо 20 kOм поставил 1кОм - стал достаточно громко работать, но в динамике слышан хрип. Причем чем тише делаешь музыку тем больше хрип. Пробовал менял конденсаторы вокруг уселителя ( на входе на выходе ) большой разницы непочувствовал.
У кого нибуть встречалось? Или так должно быть.
Блок питания 3 Амперный подовал от 7 до 14 вольт изменений нет
http://i46.fastpic.ru/big/2013/0414/29/c326c6606db5121496470290be477829.png
Надо попробовать ещё подобрать С10.
20 кОм и 1 кОм - слишком большая разница.
В статье сказано, что БП до 0,5А.
2. С9 впаять на выводы микросхемы.
3. Провода к переменному резистору должны быть экранированы.
И вопросы:
1. Без музыки хрип наблюдается?
2. Музыка воспроизводится, но регулятор в минимальном положении - хрип остался?
3. Температура микросхемы?
Вот для контроля для PIC16F628A получилось: confg bits 3F02 Checksum: B88B , для PIC16F628 confg bits 3F02, Checksum: D48B
У меня так считывало когда формат файлов не подходил - сколько мелодий столько щелчков, затем период повторялся
Отсюда скачал все пошло
До этого скачал какойто бесплатный конвертер с нета, конвертировал как указано в статье, но ни фига не вышло - видно левый конвертор.
Да и еще: в режиме плэйер питание нужно сбросить после эксперементов c картой, чтобы карта подгрузилась
смог сбросить и инициализировать карту памяти, тут проблема может быть в
карте памяти (файловая система должна быть FAT16), попробуйте
подставить другие карты, а также посмотрите надежность соединения
проводов с картой памяти.
И читайте внимательней статью, где сказано про переключение режимов, для смены режима необходимо установить переключатель в требуемое положение, затем отключить питание, затем снова подать питание, или же установить переключатель в требуемое
положение до подачи питания.
А также обратите внимание что в режиме
Проигрыватель, если микроконтроллер не сможет сбросить и
инициализировать карту памяти (2 коротких сигнала), то микроконтроллер
просто перейдет в циклический режим (зависнет), в этом случае нужно
передернуть питание. В режиме Звонок такого не происходит.
Если на карте
есть файл с неправильными параметрами то звучит короткий сигнал низкого
тона, если же на карте несколько файлов с неправильными параметрами, то
соответственно прозвучат несколько сигналов. В таком случае проблема
именно в параметрах файла, можно попробовать применить другие
конвертеры. Но здесь выложили тестовые файлы, и они работают в собранных
устройствах, а значит должны работать во всех вновь собираемых
устройствах.
НЕТ ХУДА БЕЗ ДОБРА. Хорошо что микросхему вчера спалил - так бы еще долго ковырял плату. Оказалось что новая купленая микруха с магазина была с брачком. Сейчас все чистинько играет.
Спасибо всем за помощь !!! И вообще класный форум - народ оперативно отвечает и помогает!
ссылка на торрент трекер
Обрежьте или сожмите размер картинки до 480px
Вывод micro-SD ---------- Выводы на схеме
----- 1 ----------------------- не используется
----- 2 ----------------------- к выв.1
----- 3 ----------------------- к выв.2
----- 4 ----------------------- к выв.4
----- 5 ----------------------- к выв.5
----- 6 ----------------------- к выв.6
----- 7 ----------------------- к выв.7
----- 8 ----------------------- не используется
В режиме "Звонок" после включения микроконтроллер DD1 производит
настройку внутренних регистров, после чего переходит в спящий режим. При
нажатии на кнопку SB1 ("Звонок/Воспроизведение" микроконтроллер
"просыпается", о чём свидетельствует включение светодиода HL1, подаёт
питающее напряжение на карту памяти, инициализирует её и ищет звуковой
файл. Поиск осуществляется по расширению WAV. Найдя, микроконтроллер
воспроизводит файл, отключает питание карты памяти, после чего снова
"засыпает", а светодиод HL1 гаснет. При следующем нажатии на кнопку SB1
всё повторится, но будет воспроизведён следующий звуковой файл. На карту
памяти можно записать до 512 мелодий или сообщений — это максимальное
число записей в корневом каталоге для файловой системы FAT16. После
воспроизведения всех мелодий начнётся их повторное воспроизведение.
Кнопки SB2, SB3 и SB4 в этом режиме не задействованы.
Судя по тому, что описано выше кнопки SB2, SB3 и SB4 в режиме Звонка не работают.....но мне нужно, что-бы кнопка "стоп"
, т.к к ее контактам будет подключена трубка домофона....( подробнее: кнопка SB1 выведена на улицу-за ворота, при нажатии на нее, в
доме играет музыка, НО как только я поднимаю трубку домофона-сигнал
прекращается, т.к к контактам трубки домофона подключена кнопка "стоп", так-же хотелось что-бы музыка НЕ играла по кругу (при первом
нажатии-одна песня, при втором-другая песня), а хотелось, что-бы было
так: Что-бы была возможность выбора мелодий.....установил на звонок первую мелодию, так он всегда и будет играть первую мелодию,
выбрал другую-будет играть другая.......... Скажите: есть ли такая возможность подредактировать прошивку, что бы в режиме "звонка" работали все кнопки, и была возможность выбора определенного трека , проигрываемого при звонке??? Заранее благодарен!!!!................ сам я в программировании полный нуль, я по большей части монтажник)))
должен ли он гореть?)....В режиме "звонка" какой-то баг, а именно:
нажимаю Плей,-музыка заиграла-горит светодиод, музыка закончилась,
светодиод потух...заного нажиаю на "плей" НО БОЛЬШЕ мелодия не
воспроизводится, при нажатии на Плей слышен сигнал (бип) , и все...а должна
ведь заиграть следующая мелодия. Подскажите, что это может быть.
Кто-то сможет помочь?
Возможно ли применить полевой транзистор?
Все работает.
Тестовые файлы.
Свои нет.
В чем дело.ХЗ
Все конверторы перебрал.
Не помогло.
Посоветуйте четко рабочий.
И делаю как рекомендуют.
Не. Не хочет.
Тестовые файлы автора без проблем.
Просьба ответить на мой очень простой вопрос.
Не надо флуда.
Четко и однозначно.
Каким конвертором пользовались те у кого воспроизводит его собственные файлы.
Все.
Можно по английски и одной строкой.
И еще, файлы должны быть несжатые.
Начал ставить конвертеры все подряд,которые нашел.
Вот этот сработал.Еще и на русском.
Total Audio Converter 5.2.72 RePack by AlekseyPopovv
Скачивал Шареманом.Поэтому ссылку не знаю.
Спасибо автору и модератору.