7-сегментные часы NeoPixel с таймером обратного отсчета и управлением с пульта

Из этой статьи мы с вами узнаем, как сделать 7-сегментные неопиксельные часы с таймером обратного отсчета. Часы изготавливались под конкретную задачу, а именно в подарок родителям. Родители мастера занимаются фитнесом и зачастую им нужен таймер для отслеживания времени тренировки. Такой таймер есть практически на каждом современном смартфоне, но пользоваться смартфоном во время тренировки не совсем удобно.

Особенностью эти часов является:
— 7-сегментный дисплей, показывающий текущее время дня и подсвечивающий кольцо NeoPixel в соответствии с текущей минутой часа
— ИК-датчик, который позволяет пользователю регулировать настройки часов / таймера с ИК-пульта дистанционного управления
-Функция таймера обратного отсчета, которая позволяет пользователю установить таймер обратного отсчета.
-Периодический таймер обратного отсчета, который будет бесконечно зацикливать таймер с перерывом, вводимым пользователем между ними. Например, HIIT-тренировка, которая может потребовать 1-минутного таймера с 30-секундным перерывом между подходами.
-Пьезозуммер, который гудит, когда таймер достигает 0. Также обеспечивает звуковую обратную связь при нажатии кнопки на ИК-пульте дистанционного управления.

Давайте посмотрим некоторые режимы работы часов.

Инструменты и материалы:
-Arduino Pro Mini 5V;
-NeoPixel сегменты — 4шт (15 светодиодов в каждом);
-7-сегментный цифровой дисплей;
-Модуль DS3231 RTC;
-Пьезозуммер PS1240;
-Датчик ИК-приемника 38 кГц (от устройства iHome iH9);
-ИК-пульт ( от устройства iHome iH9);
-Адаптер питания 5В 2А;
-Транзистор 2n2222;
-Резистор -1кОм;
-Конденсатор -1000 мкФ;
-CR2032 3V аккумулятор;
-Гибкий провод 28AWG;
-3D принтер (опция);
-Акриловый лист;
-Клей E6000;
-Черная аэрозольная краска;
-Принтер;
-Клеевой пистолет;
-Нож;
-Паяльник + припой;
-Кусачки;
-Ножницы;
-Плоскогубцы;
-Циркуль;
-Ленточная пила;

Шаг первый: дизайн, схема и проверка электроники
Идея сборки таких часов основывается на уникальном дизайне часов, который мастер увидел в Интернете.

Мастер хотел, чтобы родители могли регулировать часы на расстоянии, поэтому было решено использовать ИК-приемник / пульт. В качестве звукового оповещателя был использован пьезозуммер.
PDF-версия схемы можно скачать ниже.
Exercise_Clock_Schematic.pdf

Следует отметить, что и модуль RTC, и 7-сегментный дисплей используют протокол I2C. На Arduino Pro Mini эти контакты соответствуют A4 (SDA) и A5 (SCL). ИК-приемник подключается к контакту 2. Вход данных NeoPixel может быть подключен к любому цифровому выводу, в данном случае это вывод 6. Наконец, пьезозуммер подключается к контакту 3 и к базе транзистора 2n2222, для увеличения громкости зуммера.

Мастер начал с подключения компонентов на макетной плате в соответствии со схемой и тестирования отдельных компонентов.
-NeoPixel кольцо:
Кольцо NeoPixel поставляется в виде 4-х сегментов и нужно спаять сегменты в кольцо. Важно не припаивать одну пару сегмента с одного конца. К этим свободным площадкам нужно припаять свободные концы 3-проводного JST (к выводам данных, питания и заземления соответственно_. Затем эти контакты нужно будет подключить к контакту 6, + 5V и GND Arduino. Между + 5 В и GND, в соответствии с рекомендациями Adafruit, устанавливается электролитический конденсатор 1000 мкФ.
У Adafruit есть руководство по NeoPixel, доступное на их веб-сайте. Руководство включает в себя основные подключения, установку программного обеспечения и примеры. После пайки и подключения NeoPixel к Arduino мастер загрузил код согласно инструкции и проверил работу светодиодного кольца.
-IR-приемник / пульт:
У нас валялся старый блок, который мы решили разобрать. Мы спасли ИК-датчик и пульт от него и решили использовать его для этого проекта. Практически любой ИК-приемник и пульт подойдут для управления часами. Мастер использовал пульт и ИК-приемник от iHome iH9. На сайте Adafruit есть дешевые ИК-датчики / пульты дистанционного управления, а также примеры кодов о том, как их настроить.
Для данного пульта ДУ сначала нужно было определить коды для каждого нажатия кнопки. Для этого была загружена библиотека IRsmallDecoder Луиса Карвалью в IDE Arduino и запущен пример кода «HelloNEC». Это операция позволила получить уникальное шестнадцатеричное значение для каждого нажатия кнопки на данном пульте дистанционного управления.
-7-сегментный дисплей
Для сборки и подключения 7-сегментного дисплей есть учебное пособие на Adafruit.
-DS3231 Модуль часов реального времени
Этот модуль RTC уже имеет контакты, подходящие для макетной платы, поэтому подключить его к Arduino для тестирования очень просто. Дополнительно мастер добавил батарею CR2032 3V.
Для тестирования он загрузил библиотеку RTClib в Arduino IDE и запустили тестовый код «ds3231», чтобы убедиться, что компонент работает и показывают текущую и дату / время.

Шаг второй: код
Убедившись, что отдельные компоненты работают должным образом, мастер переходит к установке основной программы.
Сначала нужно установить следующие библиотеки:
— Wire.h
— Adafruit_GFX.h
— Adafruit_LEDBackpack.h
— RTClib.h
— Adafruit_NeoPixel.h
— IRsmallDecoder.h
В void loop (), по сути, были созданы 4 разные «страницы».
— «Домашняя страница часов»
o Отображает текущее время на 7-сегментном дисплее + мигание точки каждую секунду
o Загорается кольцо NeoPixel, соответствующее минутам в час (например, в 3:10 первые 10 светодиодов NeoPixel становятся красными, а остальные остаются белыми)
o При нажатии кнопки таймера на ИК-пульте дистанционного управления выполняет переход на «страницу настроек таймера».

— «Страница настройки таймера»
o Позволяет пользователю установить таймер обратного отсчета с помощью ИК-пульта дистанционного управления с шагом 05 секунд, 1 минута (ы) и / или 10 минут (ы).
o Подсвечивает кольцо NeoPixel в соответствии с выбранными секундами / минутами в эстетических целях.
o При нажатии нажатие на кнопки ИК-пульт позволяет выполнять переход на:
— Кнопка «Домой» — возвращает на «Домашнюю страницу часов».
— 05 секундная кнопка — добавляет 05 секунд к таймеру
— Кнопка 1 минута — добавляет 1 минуту к таймеру
— Кнопка 10 минут — добавляет 10 минут к таймеру
— Кнопка сброса — сбрасывает таймер обратно на 0
— Кнопка повтора часов — переводит пользователя на «Страницу настроек таймера перерыва»
— Кнопка Loop — загорается двоеточие и сигнализирует, что таймер обратного отсчета переведен в режим повторяющегося цикла. Если функция выключена, таймер обратного отсчета пройдет один цикл и вернется на «Домашнюю страницу часов».
— Кнопка воспроизведения — запускает таймер обратного отсчета, запустив 3-секундный обратный отсчет и переведя пользователя на «страницу обратного отсчета таймера».

— «Страница обратного отсчета таймера»
o Отсчет предварительно установленного пользователем таймера на дисплее
o «Гасит» светодиод на кольце NeoPixel, соответствующий текущей секунде / минуте.
o Когда таймер достигает 0, пользователь либо переходит на «Домашнюю страницу часов», либо запускает таймер паузы в зависимости от того, был ли цикл включен пользователем.
o Выполняет команду при нажатии кнопки «Домой» на ИК-пульте дистанционного управления, чтобы остановить таймер и вернуться на «Домашнюю страницу часов».

— «Страница настройки прерывания таймера»
o Позволяет пользователю установить настройки таймер прерывания, который будет работать между установками, если опция цикла была включена пользователем. Здесь также выполняются те же функции, что и на «Странице настроек таймера».
Мастер включил руководство пользователя, в котором приведены инструкции о том, как установить таймер обратного отсчета и что делает каждая кнопка на ИК-пульте дистанционного управления при нажатии.
Exercise_Clock.ino
Manual.docx

Шаг третий: 3D-печать корпуса
В качестве основания будет использоваться напечатанное кольцо. К кольцу крепится диск из акрила. На акриле будут нанесены числа. Для дисплея и остальной электроники печатается отдельная деталь.
Файлы для печати можно скачать ниже.
ClockBack.stl
ClockFrame.stl

Шаг четвертый: монтаж
Дальше мастер собирает кольцо и устанавливает его в корпус. Устанавливает ардуино, модуль часов и т.д. Протягивает и подключает согласно схеме провода. Обрезает провод от блока питания и припаивает его к Ардуино.

Шаг пятый: акрил
Дальше из акрила вырезал диск на 2 см больше светодиодного кольца. Отметил точки 12:3:6:9 относительно кольца.

Дальше был напечатан шаблон. Цифры на шаблоне вырезаны канцелярским ножом. Далее шаблон приклеивается к акриловому диску. Все части, которые не нужно окрашивать закрываются.

Прокрашивает цифры черной аэрозольной краской в несколько слоев.

Шаг шестой: пульт
В соответствии с новой раскладкой часть кнопок на пульте не нужны. Мастер напечатал новую наклейку и приклеил к пульту.

Все готово. В будущем мастер планирует добавить функцию отображения температуры и даты.
[center]

[/center

Источник (Source)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Подборки: Адресные светодиоды Ардуино Часы Таймер 3D принтер

Источник: usamodelkina.ru

Понравилась статья? Поделиться с друзьями:
KIA