МНОГОФУНКЦИОНАЛЬНЫЙ ЗВОНОК НА

PIC-КОНТРОЛЛЕРЕ

 

М. Буров, г. Кострома

 

Предлагаемый вниманию читателей квартирный звонок воспроизводит две мелодии, запоминает время восьми последних звонков и такого же числа последних открываний двери. Информация отображается на ЖК дисплее, где, кроме одного (по выбору) значения из списков звонков и открываний двери, индицируется текущее время в часах и минутах.

            Принципиальная схема звонка изображена на Рис.1. Основа устройства – микроконтроллер PIC16F84A популярного семейства PicMicro. В его функции входят слежение за состоянием контактов кнопки SB1 (“Звонок”) и датчика положения двери SF1, воспроизведение мелодии путём выдачи последовательных прямоугольных импульсов с изменяющейся частотой на вывод RB1, обслуживание кнопок SB2 (“Влево”), SB3 (“Ввод”) и SB4 (“Вправо”), программная реализация часов реального времени, а также обработка внешних и внутренних событий и выдача данных на индикацию.

            Вся информация, необходимая при пользовании звонком, выводится на дисплей ЖК модуля DV-16236NRT/R, имеющий две строки по 16 знакомест в каждой. Кроме того, в состав модуля входит специальный контроллер, освобождающий микросхему DD1 от рутинной работы по управлению индикатором.

 

 

 

Рис.1

 

Фактическое управление сводится к передаче ЖК модулю адреса знакоместа и кода символа, который необходимо вывести в это знакоместо, либо к передаче команды для её выполнения модулем. Чтобы уменьшить число задействованных линий микроконтроллера, ЖК модуль работает в четырёхразрядном, режиме, т.е. данные в него передаются тетрадами через линии DB4-DB7. Подбором резисторов R9, R10 регулируют контрастность изображения на дисплее.

            Каскад на транзисторе VT1 усиливает сигнал, снимаемый с вывода RB1. Кварцевый резонатор ZQ1 задаёт тактовую частоту работы микроконтроллера и, соответственно, точность хода часов. При частоте резонатора, указанной на схеме, погрешность их хода в идеале равна нулю. На практике погрешность всё таки существует из-за неизбежных в серийном производстве отклонений частоты резонаторов от номинального значения. Резисторы R3, R5-R8 ограничивают ток через линии микроконтроллера в аварийном режиме (это рекомендуется фирмой производителем). Конденсаторы С5, С6 предотвращают срабатывание звонка от электромагнитных наводок на провода, соединяющие его с кнопкой SB1 и датчиком SF1. Конденсаторы С7-С9 подавляют дребезг контактов кнопок SB2-SB4. Питается устройство от источника, состоящего из понижающего трансформатора Т1, выпрямительного моста VD1, интегрального стабилизатора DA1 и конденсаторов С1 и С2.

            Чертёж печатной платы и расположение на ней деталей звонка показаны на Рис.2. На плате размещены все детали, кроме кнопок SB1-SB4, динамической головки ВА1, датчика SF1 и трансформатора питания Т1. Транзистор VT1 любой из серии КТ815. Динамическая головка ВА1 – любая со звуковой катушкой сопротивлением 8 или 4 Ом. Необходимо лишь выполнить условие, чтобы суммарное сопротивление нагрузки транзистора  было не менее 20 Ом. Датчик SF1    СМК-1 или аналогичный, размыкающий свои контакты при открывании двери. В качестве понижающего подойдёт трансформатор, обеспечивающий напряжение на вторичной обмотке 9…10 В при токе 0,3 А (автор использовал стандартный трансформатор ТС-10-3М1, у которого число витков вторичной обмотки уменьшено на 90).

 

 

Рис.2

 

            Коды управляющей программы можно найти в виде файла Т_ring.hex на сервере журнала “Радио” в Интернете <ftp//ftp2.paguo.ru/pub/2001/10/ring>, (и здесь). Конфигурационное слово для микроконтроллера – 3FF1H (XT, WDT - Off, PWRTE On, CP OFF). Первая мелодия располагается по адресу 3Е0Н, вторая – 3F0H.

            При включении питания изображение на дисплее звонка принимает вид, показанный на Рис.3,а. Курсор в виде угловой скобки может находиться в трёх положениях: напротив слова “Время” (работа с текущим временем) и букв “З” и (работа со списком “Звонок”) и “Д” (работа со списком “Дверь”). Перемещают его кнопками SB2 и SB4.

            Для установки текущего времени курсор устанавливают напротив слова “Время” и нажимают кнопку SB3. После появления буквы “М” (минуты; Рис. 3,б), кнопками SB2 и SB4 вводят требуемое число минут и вновь нажимают кнопку SB3. В результате буква “M” заменяется на “Ч” (часы), что позволяет установить (теми же кнопками) нужное показание часов. Третье нажатие кнопки SB3 возвращает устройство в исходное состояние (буква “Ч” исчезает).

            Для просмотра списка звонков курсор перемещают к букве “З” и нажимают кнопку SB3. При этом появляется буква ”C” (список звонков; Рис.3,в), сигнализируя о том, что теперь с помощью кнопок SB2 и SB4 можно просмотреть весь список звонков (значение №1 – время последнего звонка, №2 предпоследнего и т.д.). Для возврата в исходное состояние ещё раз нажимают кнопку SB3, после чего буква “C” исчезает, а на дисплее остаётся значение с выбранным номером.

            Чтобы просмотреть список “Дверь”, курсор устанавливают напротив буквы “Д” и так же, как и в предыдущем случае, нажимают кнопку SB3. Далее действуют аналогично: кнопками SB2 и SB4 выбирают нужное значение (№1 – время последнего открывания двери, №2 – предпоследнего и т.д.) и ещё раз нажимают кнопку SB3.

 

 

Рис.3

 

            Каждые сутки в 00 ч 00 мин на место последней записи в списки “Звонок” и “Дверь” записывается значение ХХ : ХХ. Это позволяет определить, сколько дней назад записано то или иное значение, т.е. случилось ли событие сегодня, вчера и т.д.

            Списки “Звонок” и “Дверь” находятся в EEPROM микроконтроллера, т.е. при выключении питания все значения в списках сохраняются, однако соответствие между значением и его номером теряется.

            В описанном устройстве сохранена функция запоминания звонка в дверь, т.е. если на звонок в дверь не открыли в течение 3 мин, то при последующем её открывании воспроизводится мелодия.

 

«РАДИО» №10, 2001 г.