Часы удачи

Многие считают число «13» на часах плохим знаком. В этом проекте реализованы настольные часы, которые никогда не огорчат своего владельца. Днем, вместо «13» часов они будут показывать «01». Вместо 13 минут, будет «14». В общем, часы станут абсолютно безобидными для тех, кто верит в мистические силы. Часы – это не просто устройство для измерения времени. Это символ свободы, независимости и индивидуальности. И именно эти, присущие часам качества, будут отображены в данном проекте.Интересные функции:

  1. большой дисплей;
  2. изменение яркости в зависимости от освещенности;
  3. автоматическая демонстрация даты при приближении пользователя к часам;
  4. режим «сна»;
  5. автокоррекция хода часов для повышения точности;
  6. минимум органов управления.

Компоненты

В проекте использованы компоненты:

  1. Arduino Nano — 1 шт;

  2. Датчик освещенности KY018 — 1 шт;

  3. Датчик присутствия AM312 — 1 шт;

  4. Два резистора 10 кОм;

  5. Часы реального времени DS1307;

  6. Led матрица MAX7219 — 1 шт;

  7. Энкодер — 1шт;

  8. Разъем для подключения питания — 1шт;

  9. Прозрачная наклейка на отверстие под датчик освещенности — 1 шт;

  10. Кабели 5 штук с вилкой для подключения к плате, из них:

    • 2 шт. х на 5 контактов;

    • 2 х 3;

    • 1 х 2

  11. Корпус для устройства 158 х 90 х 60 мм;

  12. Адаптер для питания устройства 5V, 2A;

  13. Плата для сборки всех компонентов (как вариант — универсальная плата).

Корпус устройства, размеры 158 х 90 х 60 мм

Печатная плата специально для этого проекта

Напечатать плату можно на сайте EasyEDA, стоимость с доставкой примерно 30$ (10 шт). Gerber файл для заказа платы можно скачать ниже.

Gerber_AAC_30062021_1_2021-09-04

Все компоненты вместе:

Схема устройства:

Сборка устройства

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;
  }
				
			

Рассмотрим подробно отдельные блоки программы по управлению часами на Ардуино.

  1. Вывод показаний текущего времени на дисплей.
  2. Бегущая строка с показаниями текущей даты при приближении к часам.
  3. Установка даты и времени. Одна из необходимых функций часов на Ардуино, это возможность для пользователя установить дату и время. Организуем управление этой функции посредством энкодера.
  4. Автоматическое изменение яркости дисплея часов в зависимости от освещенности.Часы могут автоматически изменять яркость дисплея в зависимости от текущих условий освещения, чтобы пользователь всегда видел четкую картинку при яркой освещенности окружающего пространства, а при низкой освещенности дисплей не ослеплял глаза.
  5. Перевод часов в режим сна.
  6. Определение дня недели.
  7. Автоматическая корректировка хода времени часов.

Можно использовать более презентабельный корпус устройства, ручку энкодера, украсить корпус наклейками.

Яндекс.Метрика