Основная идея, предшествовавшая этому проекту, была связана с необходимостью сделать рождественские подарки друзьям и родственникам, притом дарить следовало что-нибудь полезное. Часы были выбраны потому, что их использует каждый, и их относительно просто сделать.
Работа устройства и основные части
Из рисунка видно, что печатная плата расположена между двумя листами прозрачного серого оргстекла толщиной 1/8 дюйма (3.2 мм). Бока корпуса открыты, справа виден разъем питания 2.1 мм. Звуковой излучатель будильника спрятан с левой стороны печатной платы. На плате установлены четыре синих светодиода диаметром 3 мм. Два из них находятся между семисегментными индикаторами часов и минут. Третий показывает, что будильник включен. Четвертый диод обозначает время суток, AM или PM. В часах есть маленькая литиевая батарейка на случай отключения электричества. Время срабатывания будильника и его состояние сохраняются в EEPROM микроконтроллера и извлекаются оттуда после восстановления питания.
Без затемненного серого оргстекла кнопки видно значительно лучше. Кнопки имеют назначение: «Будильник», «Время», «Часы» и «Минуты». На рисунке видны метки рядом с кнопками. (Рядом со светодиодами, означающими АМ и Будильник также есть метки). Чтобы установить время будильника, нажмите и удерживайте кнопку «Будильник», затем нажимайте кнопки «Часы» и «Минуты» для установки нужного времени будильника. Подобным же образом, удерживая кнопку «Время» и нажимая кнопки «Часы» и «Минуты», устанавливаете время. Нажатие кнопки «Будильник» включает/выключает его. Когда будильник звонит, его можно выключить любой кнопкой.
Большая микросхема в середине платы – Atmel Atmega8535. Микроконтроллер работает на частоте 4 МГц и программируется прямо в схеме через 6-контактный синий разъем слева от Atmega8535. Микросхема часов реального времени в 8 контактном DIP корпусе установлена справа вверху печатной платы. Две микросхемы – драйверы светодиодных индикаторов, расположены снизу печатной платы, звуковой сигнал будильника излучается пьезоэлементом (черный цилиндр справа), питание подается через разъем слева. Фотодатчик, используемый для определения уровня внешней освещенности, находится выше синего 6-контактного разъема.
Схема
Источник питания нарисован в верхней левой части схемы. Мостовой выпрямитель используется для защиты схемы от неправильной полярности питающего напряжения. Небольшой стабилизатор напряжения 5 В, в корпусе SOT-223 используется для питания микроконтроллера Atmega8535, часов реального времени и драйверов светодиодных индикаторов. Данные реального времени снимаются с микросхемы PCF8563P. Эта микросхема тактируется кварцевым резонатором частотой 32.768 кГц и использует литиевую батарейку 3 В CR2032 на случай отключения питания. Четыре кнопки SW1…SW4 используются для взаимодействия с пользователем. Микросхемы MBI5027 от Macroblock – драйверы светодиодных индикаторов (24 контактные, корпус DIP), их возможно будет немного тяжело найти. Альтернативой микросхемам MBI5027 могут быть микросхемы A6276 от Allegro.
Файл печатной платы можно скачать внизу страницы. Файл создан с помощью программы Express PCB. Собирая печатную плату, я сначала запаял два 3-миллиметровых светодиода, затем драйверы индикаторов MBI5027, а затем светодиодные семисегментные индикаторы. Когда все детали размещены на обеих сторонах печатной платы, будет видно, в каком порядке их припаивать.
Передняя и задняя панели начерчены в программе SolidWorks 99. Я просмотрел несколько различных форм и выбрал наиболее консервативный дизайн.
Программа
Программа была написана в AVR Studio с помощью компилятора AVRGCC. Таймер 0 используется для обновления дисплея и действует как временная база для 20 миллисекундного опроса кнопок в главном цикле. Таймер 1 используется только для генерации сигнала будильника частотой около 1 кГц. У устройства есть только три состояния: индикация времени, установка времени, установка времени будильника
Программа хорошо прокомментирована, поэтому чтобы понять, ее нужно просматривать от начала до конца. Файлы twi.c и twi.h я удалил из исходного кода (эти файлы используются для чтения и установки времени в часах реального времени). Я использовал не свободно распространяемую библиотеку, поэтому, чтобы скомпилировать исходный код, потребуется сделать свой файл библиотеки для общения с PCF8563P.
Программа просмотра/редактирования файлов формата ExpressPCB здесь
Автор: Matt Meerian
Архив для статьи "Часы на Atmega8535" | |
Описание:
Проект AVRStudio 4, макет печатной платы и панелей корпуса |
|
Размер файла: 101.28 KB Количество загрузок: 425 | Скачать |