Многие считают число «13» на часах плохим знаком. В этом проекте реализованы настольные часы, которые никогда не огорчат своего владельца. Днем, вместо «13» часов они будут показывать «01». Вместо 13 минут, будет «14». В общем, часы станут абсолютно безобидными для тех, кто верит в мистические силы. Часы – это не просто устройство для измерения времени. Это символ свободы, независимости и индивидуальности. И именно эти, присущие часам качества, будут отображены в данном проекте.Интересные функции:
большой дисплей;
изменение яркости в зависимости от освещенности;
автоматическая демонстрация даты при приближении пользователя к часам;
режим «сна»;
автокоррекция хода часов для повышения точности;
минимум органов управления.
Компоненты
В проекте использованы компоненты:
Arduino Nano — 1 шт;
Датчик освещенности KY018 — 1 шт;
Датчик присутствия AM312 — 1 шт;
Два резистора 10 кОм;
Часы реального времени DS1307;
Led матрица MAX7219 — 1 шт;
Энкодер — 1шт;
Разъем для подключения питания — 1шт;
Прозрачная наклейка на отверстие под датчик освещенности — 1 шт;
Кабели 5 штук с вилкой для подключения к плате, из них:
2 шт. х на 5 контактов;
2 х 3;
1 х 2
Корпус для устройства 158 х 90 х 60 мм;
Адаптер для питания устройства 5V, 2A;
Плата для сборки всех компонентов (как вариант — универсальная плата).
1. В корпусе необходимо сделать отверстия под LED матрицу, энкодер, датчик присутствия, датчик освещенности и вилку для питания устройства от адаптера.
2. Припаиваем кабели к энкодеру, датчику присутствия, датчику освещенности, вилке питания и Led матрице.
3. Припаиваем к плате микроконтроллер Arduino, часы реального времени, два резистора и пять контактных групп для подключения периферии.
Для соединения всех компонентов можно использовать и универсальные монтажные платы.
В этом случае получается слишком много соединений из проводов, в которых легко запутаться, как на картинке ниже. Надежность соединений в процессе монтажа компонентов значительно снижается.
4.Прикрепляем к корпусу плату и присоединяем к ней все датчики. Датчики крепим к корпусу.
Отверстие для датчика освещенности закрыто прозрачной пластмассовой наклейкой. С задней стороны приклеен вход для подключения адаптера.
5.Плата приклеена к корпусу на полосках пенопласта.
Все готово. Осталось залить скетч и закрыть крышку.
Программа по управлению устройством
По ссылке архив с текстовым файлом, содержащем программу для управления устройством.
if ((time.Hours == 13) & (time.minutes == 13)) {
time.gettime("d-m-Y, H:i:s, D");
h = time.hours;
m = time.minutes + 1;
}
else if ((time.Hours == 13) & (time.minutes != 13)) {
time.gettime("d-m-Y, H:i:s, D");
h = time.hours;
m = time.minutes;
}
Рассмотрим подробно отдельные блоки программы по управлению часами на Ардуино.
Вывод показаний текущего времени на дисплей.
Бегущая строка с показаниями текущей даты при приближении к часам.
Установка даты и времени. Одна из необходимых функций часов на Ардуино, это возможность для пользователя установить дату и время. Организуем управление этой функции посредством энкодера.
Автоматическое изменение яркости дисплея часов в зависимости от освещенности.Часы могут автоматически изменять яркость дисплея в зависимости от текущих условий освещения, чтобы пользователь всегда видел четкую картинку при яркой освещенности окружающего пространства, а при низкой освещенности дисплей не ослеплял глаза.