Система автоматической подачи звонков на AVR

На работе столкнулся со следующей проблемой: каждый день выбирается дежурный из сотрудников школы, у которого одна из обязанностей — давать звонки по расписанию, нажимать на кнопку в учительской. Мне было все равно, пока не увидел этот процесс в деле — сижу в учительской, бежит женщина, буквально залетает в учительскую и со словами «пока добежишь с третьего этажа…….» дает звонок, потом пол перемены приводит сердцебиение в норму. И так каждый день…. Очень часто дают звонки не вовремя. Дошла очередь до меня……..и понял что надо это дело автоматизировать.

Начнем с того что школа особенная, тут неделю учимся с утра (1 смена), неделю после обеда (2 смена), дни бывают сокращенные, тогда урок длится не по 45, а может по 40 и 30 минут. Составил соответствующее расписание звонков для каждого режима работы: 

   1 смена 45   1 смена 40   1 смена 30   2 смена 45   2 смена 40   2 смена 30 
 1 УРОК 
8:45
8:45 8:45 14:10 14:10 14:10
9:30
9:25 9:15 11:55 14:50 14:40
2 УРОК 9:40 9:30 9:20 15:00 14:55 14:50
10:25 10:10 9:50 15:45 15:35 15:20
3 УРОК 10:35 10:15 9:55 15:50 15:40 15:30
11:20 10:55 10:25 16:35 16:20 16:00
 4 УРОК 11:35 11:10 10:40 17:00 16:55 16:05
12:20 11:50 11:10 17:45 17:35 16:35
5 УРОК 12:25 11:55 11:15 17:50 17:40 17:00
13:10 12:35 11:45 18:35 18:20 17:30

В качестве «мозгов» всей системы выбрал микроконтроллер ATmega8535, т.к. из имеющихся он больше всего подходит под данную задачу. Примерный интерфейс устройства:

кнопка «СМЕНА» выбирает текущий режим работы

кнопка «ЧАСЫ +» добавляет часы, «ЧАСЫ -» убавляет, и тоже самое с минутами.

Выбранную смену отображает соответствующий надписи светодиод.

В качестве индикаторов выбрал 4-ре семисегментных индикатора, 2 показывают часы, другие 2 индикатора — минуты, а между ними посекундно мигают 2 светодиода.

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

Схема устрйоства для автоматической подачи звонков на AVR

Расположил детали в соответствии с лицевой панелью, спроектировал и создал двухстороннюю печатную плату:

Печатную плату делал при помощи фоторезиста, перемычки между слоями ПП сделал из расслоенного многожильного провода:

Следующим шагом было все это спаять, сначала панельку для микроконтроллера, далее резисторы и т.д..

Потом прошиваем микроконтроллер и запускаем, тестируем все системы.

Завершив это, занялся корпусом, корпус решил делать из стеклотекстолита. Исходя из параметров печатной платы, спроектировал корпус, распечатал на матовой фотобумаге и перенес рисунок на стеклотекстолит методом ЛУТ:

Вырезал составляющие части корпуса бормашинкой, просверлил отверстия под кнопки и светодиоды:

Пользуясь уголком спаял корпус:

Все неровности убрал наждачной бумагой:

Покрасил корпус и примерил его:

Далее необходимо сделать интерфейсную часть, для этого печатаем лазерным (от струйного все потечет) принтером на обычной офисной бумаге, вырезаем, приклеиваем на ПВА и прижимаем прессом через ровную поверхность до полного высыхания:

Далее, чтобы лицевая часть сильно не выделялась от корпуса покрываем все это лаком на 2-3 раза, после чего клеевым пистолетом вклеиваем ПП в корпус:

Реле решил вынести за корпус (синие провода), черные провода подключаются параллельно той кнопке, которой дают звонок вручную.

Следующим шагом приклеиваем сзади лист стеклотекстолита термоклеющим пистолетом и получаем готовое устройство:

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК AVR 8-бит ATmega8535 1 ATmega8535-16PU
U2 Линейный регулятор LM78L05 1
Q1 Биполярный транзистор 2N3055 1
C1 Конденсатор 0.33мкФ 50В X7R 1
C2 Конденсатор 0.1мкФ 50В X7R 1
C3, C4 Конденсатор 22пФ 50В NPO 2
Резистор 10 кОм 8
Резистор 130 Ом 8
Резистор 5 кОм 1
Резистор 330 Ом 7
Светодиод красный 3 мм 2
D3-D8 Светодиод зеленый 3 мм 6
Rele1 Реле 812H-1C-C 1
Тактовая кнопка DIP SWT 6x6x17mm 5
X1 Кварцевый резонатор 16 МГц 1
Семисегментный индикатор 1 разряд. красный 4 Общий катод
Выключатель B170G 1 С фиксацией 8 х 8мм
Панелька под МК PLS-40 1