Оглавление:
- Запасы
- Шаг 1: соедините компоненты
- Шаг 2: детали, напечатанные на 3D-принтере
- Шаг 3: Код
- Шаг 4: Работа и настройки
Видео: Пенсионные часы / Count Up / Dn Clock: 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
У меня было несколько таких светодиодных точечно-матричных дисплеев 8x8 в ящике, и я думал, что с ними делать. Вдохновленный другими инструкциями, у меня возникла идея построить дисплей обратного / обратного отсчета для обратного отсчета до будущей даты / времени, и, если целевое время прошло, отсчитывать от него. Я сделал это теперь своими пенсионными часами, лежащими на полке.
Идея поместить его в бутылку была скорее случайностью, когда думали о оболочке. Другие кладут корабли в бутылки, почему бы не часы?
Я также хотел, чтобы часы подчинялись летнему времени и, конечно же, запоминали настройки и время при отключении от сети. Я питаю часы через USB, что делает их перепрограммируемыми, если вы хотите сделать что-то другое или просто добавить функции в код. Код довольно прост и требует значительных оптимизаций. Должен признаться, я не очень заботился о потреблении оперативной памяти. Если у меня будет время и мотивация, я вернусь к этому.
Запасы
1. Arduino Nano
2. RTC (я использовал обычный DS3231, который также имеет EEPROM)
3. Модуль точечной матрицы 12x 8x8. (У меня были четырехъядерные модули, которые легче выстраивать в линию)
4. LDR для регулировки яркости дисплея.
5. Резистор 10 кОм
6. Конденсатор 5x 100 мкФ подавляющий выбросы от дисплея.
7. Для увеличения контрастности модулей 8x8 я использовал темную тонированную «Window Film». На дисплее светодиоды отображаются в виде белых точек, если они не горят. Оконная пленка придает ему блестящий черный вид.
Шаг 1: соедините компоненты
Я использовал три из четырех дисплеев, чтобы собрать дисплей. Чтобы показать дату с косой чертой и время с двоеточием, нам нужно место для 8 символов. Используя типичный шрифт 5x7, нам понадобится шесть блоков 8x8 на строку. Я разрезал один из четырех блоков пополам и расположил их в два ряда по шесть блоков, как показано на схеме макета.
Шаг 2: детали, напечатанные на 3D-принтере
Чтобы удержать два ряда дисплея и разместить их в бутылке, я напечатал круглые дистанционные кольца для рамки дисплея. Я добавил файлы, которые использовал ниже. Чтобы их можно было печатать без поддержки, они разделены на части. На снимке экрана показаны два кольца, приклеенных к рамке дисплея. На крышке горлышка бутылки расположены три кнопки для переключения между режимами отображения и установки текущего и целевого времени. Крышка горлышка бутылки, которую я напечатал в ТПУ, позволяет вставить кабель USB в крышку, не отрезая разъемы, и закрепить его несколькими витками провода. Я забыл упомянуть, что использовал винную бутылку объемом 1,5 л, которую вырезал в самом низу. Все печатаемые детали умещаются на платформе принтера 20x20 см (8x8 дюймов).
Шаг 3: Код
Код Arduino использует несколько часто используемых библиотек.
MD_MAX72xx
SPI
Проволока
RTClib
Часовой пояс
TimeLib
В INO-файле есть несколько строк, которые, возможно, потребуется изменить:
Строка 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- зависит от модуля 8x8 и его ориентации
вместо FC16_HW это может быть одно из:
- MD_MAX72XX:: PAROLA_HW
- MD_MAX72XX:: GENERIC_HW
- MD_MAX72XX:: ICSTATION_HW
- MD_MAX72XX:: FC16_HW
Код использует настройки для центрального времени США и требует настройки для других часовых поясов:
Строка 53/54:
TimeChangeRule myDST = {"CDT", секунда, вс, 2 марта, -300}; // Летнее время UTC-5TimeChangeRule mySTD = {"CST", Первое, Вс, 2 ноября, -360}; // Стандартное время UTC -6
Это легко настроить. Название CST / CDT просто для ссылки. Я не показываю трехбуквенное сокращение, поэтому это не имеет значения. Следующие параметры относятся к тому, в какой день месяца происходит переключение. Регулировка выполняется в минутах, поэтому местоположения, использующие корректировки +/- 30 минут, также будут работать.
RTC работает внутри по UTC-времени, что позволяет библиотеке часовых поясов работать должным образом. Вы можете задаться вопросом, почему код ссылается на старую микросхему DS1307, а не на микросхему часов, которую я использовал, но это не имеет значения. Библиотека работает нормально с любым чипом. DS1307 имеет тенденцию к большему отклонению, чем DS3132. DS3132 - предпочтительные часы. Для тех, кто хочет добавить время в Интернете, ESP8266 легко справится с этой задачей. Это может сделать RTC устаревшим. Если вы вносите эти изменения, используйте EEPROM Arduino для хранения целевого времени, я использовал для этого RTC EEPROM.
Шаг 4: Работа и настройки
Есть три кнопки
1. Меню / настройки
2. Вверх
3. Вниз
Кнопка меню позволяет переключаться между тремя типами дисплея: текущее время, целевое время, дельта-время. Дельта-время показывает количество дней, ЧЧ / ММ / СС между текущим и целевым временем. Он покажет t- и обратный отсчет, если цель в будущем, или t + и обратный отсчет, если цель в прошлом.
Чтобы настроить текущее или целевое время, выберите отображение текущего или целевого времени. Чтобы изменить время, удерживайте кнопку меню в течение 2 секунд и отпустите, чтобы перейти в режим настройки. Соседний «/» или «:» превратится в «», чтобы указать, какую цифру вы настраиваете. Используйте кнопки вверх / вниз для настройки отдельных чч / мм / сс и мм / дд / гг. Я не добавлял настройку для переключения между мм / дд / гг и дд / мм / гг, это нужно изменить в коде или, возможно, кто-то захочет добавить эту функцию.
Вы заметите, что если вы переместите минуты выше 59 или ниже 00, отображение часов также изменится. то же самое верно для секунд, часов и дней, меняя следующее более высокое значение при переходе ниже 0 или выше максимального значения для этой цифры. Я сделал это, чтобы избежать программирования различных пределов отдельных месяцев, и если в феврале требуется 29 дней в високосном году. Корректировка времени фактически выполняется в эпохальных секундах с 1 января 1970 года.
Я добавил простое видео, чтобы показать подсчет. Я хотел сделать их похожими на дисплей с вращающимся колесом. Если вы хотите отрегулировать продолжительность изменения, строка 69 в INO дает вам несколько вариантов, чтобы ускорить или замедлить изменение. 120 мс заставят цифры прокручиваться достаточно медленно, так как это будет постоянно работающее колесо.
Надеюсь, вам понравилось это руководство.
Патрик Гешвинднер
Рекомендуемые:
Часы Vortex: наручные часы с зеркалом бесконечности: 10 шагов (с изображениями)
Часы Vortex: наручные часы с зеркалом бесконечности: целью этого проекта было создание носимой версии зеркальных часов бесконечности. Он использует свои светодиоды RGB для индикации времени, назначая часы, минуты и секунды красным, зеленым и синим светам соответственно и перекрывая эти оттенки t
Фотохромные часы и светящиеся в темноте часы: 12 шагов (с изображениями)
Фотохромные часы и часы, светящиеся в темноте: в этих часах используется специально созданный 4-значный 7-сегментный дисплей, сделанный из ультрафиолетовых светодиодов. Перед дисплеем размещается экран, который состоит либо из фосфоресцирующего («светится в темноте»), либо из фотохромного материала. Загорается кнопка вверху
C51 4-битные электронные часы - деревянные часы: 15 шагов (с изображениями)
C51 4-битные электронные часы - деревянные часы: у меня было немного свободного времени на этих выходных, поэтому я собрал эти 4-битные электронные цифровые часы DIY за 2,40 австралийских долларов, которые я недавно купил на AliExpress
Часы Gixie: самые красивые часы со светящейся трубкой: 4 шага
Часы Gixie: самые красивые часы Glow Tube: мне очень нравятся часы Nixie Tube, но они слишком дороги, я не могу их себе позволить. Итак, я потратил полгода на создание этих часов Gixie Clock. Gixie Clock достигается за счет использования освещения ws2812 для создания акрилового света. Я делаю все возможное, чтобы сделать трубку RGB тоньше
Создайте настоящие часы с боем колокола для вашего ПК и часы с огнетушителем: 3 шага (с изображениями)
Создайте настоящие часы с боем колокола для вашего ПК и часы с огнетушителем: медный колокол, маленькое реле, еще несколько вещей и настоящий колокол могут пробить часы на вашем рабочем столе. Хотя этот проект работает на Windows и Mac OS X тоже, я решил установить Ubuntu Linux на ПК, который я нашел в мусорном ведре, и поработать над этим: у меня никогда не было