На работе столкнулся со следующей проблемой: каждый день выбирается дежурный из сотрудников школы, у которого одна из обязанностей — давать звонки по расписанию, нажимать на кнопку в учительской. Мне было все равно, пока не увидел этот процесс в деле — сижу в учительской, бежит женщина, буквально залетает в учительскую и со словами «пока добежишь с третьего этажа…….» дает звонок, потом пол перемены приводит сердцебиение в норму. И так каждый день…. Очень часто дают звонки не вовремя. Дошла очередь до меня……..и понял что надо это дело автоматизировать.
Начнем с того что школа особенная, тут неделю учимся с утра (1 смена), неделю после обеда (2 смена), дни бывают сокращенные, тогда урок длится не по 45, а может по 40 и 30 минут. Составил соответствующее расписание звонков для каждого режима работы:
1 смена 45 | 1 смена 40 | 1 смена 30 | 2 смена 45 | 2 смена 40 | 2 смена 30 | ||
---|---|---|---|---|---|---|---|
1 УРОК |
|
8:45 | 8:45 | 14:10 | 14:10 | 14:10 | |
|
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-вольтовый блок питания. В итоге у меня получилась следующая схема:
Расположил детали в соответствии с лицевой панелью, спроектировал и создал двухстороннюю печатную плату:
Печатную плату делал при помощи фоторезиста, перемычки между слоями ПП сделал из расслоенного многожильного провода:
Следующим шагом было все это спаять, сначала панельку для микроконтроллера, далее резисторы и т.д..
Потом прошиваем микроконтроллер и запускаем, тестируем все системы.
Завершив это, занялся корпусом, корпус решил делать из стеклотекстолита. Исходя из параметров печатной платы, спроектировал корпус, распечатал на матовой фотобумаге и перенес рисунок на стеклотекстолит методом ЛУТ:
Вырезал составляющие части корпуса бормашинкой, просверлил отверстия под кнопки и светодиоды:
Пользуясь уголком спаял корпус:
Все неровности убрал наждачной бумагой:
Покрасил корпус и примерил его:
Далее необходимо сделать интерфейсную часть, для этого печатаем лазерным (от струйного все потечет) принтером на обычной офисной бумаге, вырезаем, приклеиваем на ПВА и прижимаем прессом через ровную поверхность до полного высыхания:
Далее, чтобы лицевая часть сильно не выделялась от корпуса покрываем все это лаком на 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 | ||||