Arduino

технологии

Простой будильник на Arduino Uno

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

Перед тем, как приступить, рекомендую ознакомиться со статьями по 7-секционным 4х символьным дисплеям и модулю часов реального времени DS1307, это поможет лучше понять код скетча, а также установить начальное время для модуля реального времени.

Кроме дисплея и модуля реального времени, для будильника будем использовать пьезоизлучатель (спикер), две кнопки, подключенные через резисторы и собственно "мозг" часов - плату Arduino Uno. Заказать все элементы можно по ссылкам внизу статьи или в каталоге, общая стоимость достаточно небольшая.

Схема подключения следующая:

Будильник на Arduino Uno

Никаких тонкостей и сложностей подключение вызвать не должно, но не забудьте перепроверить еще раз, что все элементы соединены правильно. Ошибка в подключении может привести к выходу из строя платы. Кнопки, как мы видим, подключены через резисторы (20 кОм). Сделано это для того, чтобы при не нажатой кнопке с соответствующего пина всегда приходило значение LOW.

Все управление будильником производится двумя кнопками, при этом оно сделано максимально простым и удобным, и что-то перепутать и сломать при использовании просто невозможно. При нажатии на первую кнопку (подключена к цифровому пину 7), мы входим в режим установки времени, на индикаторе начинают мигать часы. Второй кнопкой (пин 8) мы меняем значение часов по кругу. После этого нажимаем кнопку 1 и переходим к установке минут, которые настраиваем точно так же. Далее по последнему нажатию на кнопку 1 происходит выход из режима настройки часов.

Время срабатывания будильника устанавливается почти также, только для запуска установки будильника нужно нажать кнопку 2, а часы и минуты устанавливать уже кнопкой 1. Перепутать кнопки довольно сложно: при установке будильника горит двоеточие, а при установке часов - нет. Также при установке будильника в качестве значения часов и минут можно задать прочерк, означающий, что будильник отключен.

Для работы скетча вам потребуется установить библиотеки: TM1637, DS1307RTC и Time. Сделать это можно через менеджер библиотек как в Arduino IDE, так и в PlatformIO.

Исходный код скетча можно скачать на странице github.

Корпус можно сделать любой, на что хватит фантазии: строгий или, наоборот, забавный. Для него можно взять готовую 3D-модель и подправить ее, либо сделать все с нуля:

Alarm clock arduino

Используемые компоненты:

  • Arduino Uno: 1 2 3
  • 7-сегментный дисплей: 1 2 3
  • модуль часов реального времени: 1 2 3
  • батарейки CR2032: 1 2
  • пьезоизлучатель: 1 2 3
  • кнопки: 1 2 3
  • резисторы: 1 2 3
  • макетная плата: 1 2 3
  • провода: 1 2 3