Страница 1 из 3

Как сделать имитацию механического звонка

СообщениеДобавлено: 21 сен 2013, 19:08
vovavova
Здравствуйте уважаемые форумчане!
Подскажите, пожалуйста, как можно заменить механический звонок, на аналогичный по звучанию электронный? Работаю в ВУЗе инженером, звонок выведенный на улицу часто ломается и не звонит, из-за этого студенты не слышат звонка, опаздывают на пары. Пришла такая идея... Питание, которое подается на звонок постоянной величины 27 вольт.
На компьютере смоделировал электронный имитатор, вот ссылка на файл...
http://rghost.ru/48886375
Данные программной модели такие...
Первый генератор излучает 3000 Гц длительностью 30 микросекунд.
Второй генератор излучает 1200 Гц длительностью 30 микросекунд.
Первый и второй генератор переключаются между собой по циклу.
Как это реализовать на практике? Буду рад любым советам.

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 22 сен 2013, 08:55
Pavel
Здравствуйте.
Реализовать на простейшем МК, например PIC12F629. С программой могу помочь (она строчек 10 :) ). То есть на МК подается питание через стабилизатор и он начинает генерировать на одном из своих выводов (выбирается самостоятельно) сигналы заданной частоты и длинны. Этот вывод соответственно подключается к усилителю и таким образом увеличиваются громкость звучания.

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 23 сен 2013, 17:32
vovavova
Уважаемый Pavel!
Буду очень благодарен Вашей помощи.
Если честно, с МК никогда дело не имел, как писать программы под них для меня это вообще темный лес. Но у меня на работе есть сотрудники, которые занимались прошивками МК и схемами на них. Сами делали даже программаторы – все работает без проблем. Так что вместе, думаю, сможем что-то смастерить.
Один товарищ подарил мне PIC12F629, ставил на нем эксперименты. Доэкспериментировался так, что он у него перестал работать вообще. Каким-то образом установил биты защиты и защитного кода данных и еще сбросил заводскую константу в конце HEX-кода контроллера. Скажите, в таком плачевном случаи можно ли как-то реанимировать МК или его остается только выкинуть?
P.S. Pavel, а Вы сможете запрограммировать тот режим генерации, что я указал... т.е. 3000 Гц и потом 1200 Гц оба по 30 микросекунд? И хорошо бы еще схему периферии МК, а усилитель приставить это уже мы сами сделаем.

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 09:32
ASD
vovavova писал(а): Pavel, а Вы сможете запрограммировать тот режим генерации, что я указал... т.е. 3000 Гц и потом 1200 Гц оба по 30 микросекунд?


Он не сможет :). Потому что период колебаний частотой 3000 Гц - 333 микросекунды (мкс), а частотой 1200 Гц - 833 мкс. Может быть, всё-таки 30 миллисекунд (мс)? Тогда всё просто. Сначала 90 периодов по 333 мкс, а потом 36 по 833 мкс.

vovavova, а какая Вам нужна периферия? Просто подайте на микроконтроллер питание, а с того вывода, который Вам больше нравится, снимите сигнал на усилитель. Только попросите программиста, чтобы вывел сформированный сигнал именно на этот вывод (ему всё равно, на какой выводить).

А вообще, vovavova, задача настолько простая, что почему бы Вам не попробовать решить её самостоятельно? Это следующий шаг после простого мигания светодиодом, описанного во всех учебниках программирования.

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 10:34
vovavova
ASD, о да!! Спасибо за поправку! Действительно ошибся, исправляюсь - 30 МИЛЛИсекунд (мс).
Насчет периферии все понял, а вот насчет программирования... тут же нужно знать ассемблер для PIC, а я с этим не очень дружу. :(

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 13:15
ASD
Язык ассемблера знать не обязательно. Есть много других языков программирования (BASIC, С, Pascal) и бесплатных компиляторов для них, выбирайте любой. Задача элементарно простая. На таких и надо учиться. А то, так и придётся всю жизнь просить: "Дяденьки, напишите программку...".

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 16:54
Pavel
Ну так что, Владимир, вы решите? Сами напишите программу или помочь вам.
Александр Сергеевич, как всегда. :) Но он забыл отметить следующие: если необходимо что-то сделать один раз, то не стоит тратить время на изучение, однако если в будущем собираешься часто делать подобное, то тогда да - нужно учиться.

Про PIC12F629 (даже боюсь представить, что он пережил во время опытов с ним :D ).
Если в нем просто стоят биты защиты, то МК будет работать, если его стереть и записать в него новую программу. Что касается константы для внутреннего генератора частоты, то в данном случае её значение не играет большой роли, так как частота именно в 4 МГц не нужна.

Внешний кварцевый резонатор здесь не нужен, поэтому динамик (усилитель) можно подключить к любому из портов GP0,GP1,GP2,GP4,GP5.
На вход сброса (MCLR/GP3/Vpp) подается +5В через резистор 10 кОм.

Я пишу на компиляторе MikroC pro for Pic (http://www.mikroe.com/mikroc/pic/). В вашем случае лицензия не нужна, так как лимит по коду не превышает двух килослов (в PIC килослова, а не килобайты).

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 17:21
vovavova
ASD, трудно с Вами спорить. Конечно же Вы правы, все нужно стараться делать самому, но в данном случаи время - решающий фактор. Пока я буду разбираться с тонкостями программирования контролеров пройдет полгода (способности у меня не очень), к тому времени все мы будем долбаться с этим звонком, который сделан еще в 60-х и его пора давно выкинуть. Вот только другого нет на замену.
На первых порах проще попросить «дяденьку», а уже потом спокойно разбираться в тонкостях.
P.S. Скажите, а что программу для любого МК можно написать на BASIC’е, скомпилировать в HEX-файл зашить в контроллер и она будет работать???

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 17:27
Sergey7
Ассемблер фирмы Microchip проще некуда, это всего лишь около 30 команд, половина из которых нужна не так часто. Поищите в сети книгу Самоучитель по программированию PIC контроллеров с нуля.pdf, автор Карабельников Е. А., 2008г. Распечатайте список команд, и с такой шпаргалкой через пару часов сможете создать программу. Надо загрузить с офф сайта программу MP Lab IDE. Удачи.

Re: Как сделать имитацию механического звонка

СообщениеДобавлено: 24 сен 2013, 18:25
ASD
Pavel писал(а):Но он забыл отметить следующие: если необходимо что-то сделать один раз, то не стоит тратить время на изучение, однако если в будущем собираешься часто делать подобное, то тогда да - нужно учиться.


Я не забыл. Просто считаю, что учиться нужно всему и всегда. Знания и умения никогда не бывают лишними. Иначе попадём в положение папуасов, живущих на берегу океана, которым приходится привозить рыбу, потому что они не умеют её ловить. Хотя никто, конечно, не знает, что из изученного пригодится на следующий день, что через год, что через десять, а что вообще никогда не пригодится.

vovavova писал(а):Скажите, а что программу для любого МК можно написать на BASIC’е, скомпилировать в HEX-файл зашить в контроллер и она будет работать???


Конечно можно, причём на любом языке. Но только при условии, что есть транслятор этого языка в машинные коды именно этого микроконтроллера (или класса микроконтроллеров). Для PIC такие трансляторы (компиляторы) есть.
Можно начать и с языка ассемблера. Как правильно сказал Sergey7, для PIC он несложный. Не нужно только заранее опускать руки и жаловаться на свои якобы слабые способности.