Целью проекта было создание будильника с псевдо-аналоговым циферблатом и возможностью запрограммировать несколько периодов включения сигнала, включая рабочие дни и выходные, в том числе праздничные дни. Почему OLED? Из-за высокого качества изображения и низкого энергопотребления. Ведь нам нужно идти вместе с прогрессом!

Основой является цветной OLED-дисплей с разрешением 128х128 точек размером 1,5 дюйма с контроллером SSD1351. Этот дисплейный модуль можно легко найти в продаже, он имеет интерфейс SPI по умолчанию, но для настройки параллельного интерфейса нужно только припаять несколько резисторов R8 и R10-R7 и R9. Параллельное управление в сочетании с микроконтроллером ATxmega256A3U и частотой тактирования 32MHz, обеспечивает быстрое обновление экрана.

На дисплейном модуле мне пришлось сменить соединительный разъем на тип "мама". Метод ЛУТ, которым изготавливалась печатная плата, не позволяет металлизировать отверстия. На печатной плате необходимо было припаять разъем с обеих сторон платы - и это можно сделать только для соединителя типа "Папа", у меня не было другой идеи для компоновки дорожек. Размер печатной платы был адаптирован к размеру дисплея. Разъем питания припаян вертикально к печаной плате.

Часы-будильник на OLED дисплее - схема

Измерение времени осуществляется точным RTC DS3231. Резервная батарея припаивается на плату, мои расчеты показывают, что ее энергии должно хватить на более 100 лет. Установленный ртутный датчик наклона позволяет легко активировать функцию повтора/отмены сигнала. Зуммер BOT-03D достаточно громкий (90 дБ), чтобы проснуться. Термометр DS18B20, установленный как на рисунке, измеряет температуру системы, а не температуру окружающей среды, поэтому его следует вынести из корпуса устройства. Фотоэлектрический блок BPW85 отвечает за измерение окружающего света. Управление устройством осуществляется с помощью джойстика ALPS SKQU - практичное и удобное решение. Благодаря малому числу выводов разъема программирования PDI был создан необычный разъем, и для программирования я использую специальный адаптер, выполненный по этому случаю.

Функции будильника:
- Аналоговый или цифровой циферблат;
- Автоматический переход лето/зима (можно выбрать вручную);
- Отображение названий праздников;
- Можно установить 4 сигнала будильника;
- Программирование сигнала будильника в выбранные дни недели или в рабочие дни/выходные(включая праздники);
- Регулируемая громкость сигнала будильника;
- Различные звуки и мелодии;
- Тройная отсрочка сигнала, с программируемой длиной;
- Выключение сигнала путем встряхивания будильника;
- Светодиодная сигнализация;
- Автоматическая настройка яркости дисплея.

В плане:
- Более сложные способы выключения будильника, чтобы более эффективно разбудить сон;
- Реализовать таймер обратного отсчета и календарь.

Программа по-прежнему требует много поправок и улучшений, но и в настоящем виде она работоспособна. Также нужно поработать над графическим интерфейсом, потому что, к сожалению, здесь мне не хватало дизайнерского опыта. Поэтому я оставляю программный код открытым. Надеюсь, что, если кто-то рассмотрит проект, достойный продолжения, он также поделится своими достижениями.


Архив для статьи "Часы-будильник на OLED дисплее"
Описание:

Исходный код(СИ)

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