Основная идея, предшествовавшая этому проекту, была связана с необходимостью сделать рождественские подарки друзьям и родственникам, притом дарить следовало что-нибудь полезное. Часы были выбраны потому, что их использует каждый, и их относительно просто сделать.

Работа устройства и основные части

Из рисунка видно, что печатная плата расположена между двумя листами прозрачного серого оргстекла толщиной 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.

Часы на ATmega8535 - схема
Печатная плата

Файл печатной платы можно скачать внизу страницы. Файл создан с помощью программы Express PCB. Собирая печатную плату, я сначала запаял два 3-миллиметровых светодиода, затем драйверы индикаторов MBI5027, а затем светодиодные семисегментные индикаторы. Когда все детали размещены на обеих сторонах печатной платы, будет видно, в каком порядке их припаивать.

Часы на ATmega8535 - печатная плата
Передняя и задняя панели

Передняя и задняя панели начерчены в программе SolidWorks 99. Я просмотрел несколько различных форм и выбрал наиболее консервативный дизайн.

Программа

Программа была написана в AVR Studio с помощью компилятора AVRGCC. Таймер 0 используется для обновления дисплея и действует как временная база для 20 миллисекундного опроса кнопок в главном цикле. Таймер 1 используется только для генерации сигнала будильника частотой около 1 кГц. У устройства есть только три состояния: индикация времени, установка времени, установка времени будильника

Программа хорошо прокомментирована, поэтому чтобы понять, ее нужно просматривать от начала до конца. Файлы twi.c и twi.h я удалил из исходного кода (эти файлы используются для чтения и установки времени в часах реального времени). Я использовал не свободно распространяемую библиотеку, поэтому, чтобы скомпилировать исходный код, потребуется сделать свой файл библиотеки для общения с PCF8563P.

Программа просмотра/редактирования файлов формата ExpressPCB здесь

Автор: Matt Meerian


Архив для статьи "Часы на Atmega8535"
Описание:

Проект AVRStudio 4, макет печатной платы и панелей корпуса

Размер файла: 101.28 KB Количество загрузок: 405 Скачать