Как сделать электронные часы своими руками
Перейти к содержимому

Как сделать электронные часы своими руками

  • автор:

Самодельные электронные часы, элементная база — часть 2

Привет, geektimes! В первой части статьи были рассмотрены принципы получения точного времени на самодельных часах. Пойдем дальше, и рассмотрим, как и на чем это время лучше выводить.

1. Устройства вывода

Итак, у нас есть некая платформа (Arduino, Raspberry, PIC/AVR/STM-контроллер, etc), и стоит задача подключить к нему некую индикацию. Есть множество вариантов, которые мы и рассмотрим.

Сегментная индикация

Тут все просто. Сегментный индикатор состоит из обычных светодиодов, которые банально подключаются к микроконтроллеру через гасящие резисторы.

Осторожно, траффик!

Плюсы: простота конструкции, хорошие углы обзора, невысокая цена.
Минус: количество отображаемой информации ограничено.
Конструкции индикаторов бывают двух видов, с общим катодом и общим анодом, внутри это выглядит примерно так (схема с сайта производителя).

Есть 1001 статья как подключить светодиод к микроконтроллеру, гугл в помощь. Сложности начинаются тогда, когда мы захотим сделать большие часы — ведь смотреть на мелкий индикатор не особо удобно. Тогда нам нужны такие индикаторы (фото с eBay):

Они питаются от 12В, и напрямую от микроконтроллера просто не заработают. Тут нам в помощь приходит микросхема CD4511, как раз для этого предназначенная. Она не только преобразует данные с 4-битной линии в нужные цифры, но и содержит встроенный транзисторный ключ для подачи напряжения на индикатор. Таким образом, нам в схеме нужно будет иметь «силовое» напряжение в 9-12В, и отдельный понижающий преобразователь (например L7805) для питания «логики» схемы.

Матричные индикаторы

По сути, это те же светодиоды, только в виде матрицы 8х8. Фото с eBay:

Продаются на eBay в виде одиночных модулей либо готовых блоков, например по 4 штуки. Управление ими весьма просто — на модулях уже распаяна микросхема MAX7219, обеспечивающая их работу и подключение к микроконтроллеру с помощью всего лишь 5 проводов. Для Arduino есть много библиотек, желающие могут посмотреть код.
Плюсы: невысокая цена, хорошие углы обзора и яркость.
Минус: невысокое разрешение. Но для задачи вывода времени вполне достаточно.

ЖК-индикаторы

ЖК-индикаторы бывают графические и текстовые.

Графические дороже, однако позволяют выводить более разнообразную информацию (например график атмосферного давления). Текстовые дешевле, и с ними проще работать, они также позволяют выводить псевдографику — есть возможность загружать в дисплей пользовательские символы.

Работать с ЖК-индикатором из кода несложно, но есть определенный минус — индикатор требует много управляющих линий (от 7 до 12) от микроконтроллера, что неудобно. Поэтому китайцы придумали совместить ЖК-индикатор с i2c-контроллером, получилось в итоге очень удобно — для подключения достаточно всего 4х проводов (фото с eBay).

ЖК-индикаторы достаточно дешевые (если брать на еБее), крупные, их просто подключать, и можно выводить разнообразную информацию. Единственный минус это не очень большие углы обзора.

OLED-индикаторы

Являются улучшенным продолжением предыдущего варианта. Варьируются от маленьких и дешевых с диагональю 1.1″, до больших и дорогих. Фото с eBay.

Собственно, хороши всем кроме цены. Что касается мелких индикаторов, размером 0.9-1.1″, то (кроме изучения работы с i2c) какое-то практическое применение им найти сложно.

Газоразрядные индикаторы (ИН-14, ИН-18)

Эти индикаторы сейчас весьма популярны, видимо из-за «теплого лампового звукасвета» и оригинальности конструкции.

(фото с сайта nocrotec.com)

Схема их подключения несколько сложнее, т.к. эти индикаторы для зажигания используют напряжение в 170В. Преобразователь из 12В=>180В может быть сделан на микросхеме MAX771. Для подачи напряжения на индикаторы используется советская микросхема К155ИД1, которая специально для этого и была создана. Цена вопроса при самостоятельном изготовлении: около 500р за каждый индикатор и 100р за К155ИД1, все остальные детали, как писали в старых журналах, «дефицитными не являются». Основная сложность тут в том, что и ИН-хх, и К155ИД1, давно сняты с производства, и купить их можно разве что на радиорынках или в немногих специализированных магазинах.

2. Выбор платформы

С индикацией мы более-менее разобрались, осталось решить, какую аппаратную платформу лучше использовать. Тут есть несколько вариантов (самодельные я не рассматриваю, т.к. тем кто умеет развести плату и припаять процессор, эта статья не нужна).

Arduino

Самый простой вариант для начинающих. Готовая плата стоит недорого (около 10$ на eBay с бесплатной доставкой), имеет все необходимые разъемы для программирования. Фото с eBay:

Под Arduino есть огромное количество разных библиотек (например для тех же ЖК-экранов, модулей реального времени), Arduino аппаратно совместима с различными дополнительными модулями.
Главный минус: сложность отладки (только через консоль последовательного порта) и довольно-таки слабый по современным меркам процессор (2КБайт RAM и 16МГц).
Главный плюс: можно сделать много чего, практически не заморачиваясь с пайкой, покупкой программатора и разводкой плат, модули достаточно соединить друг с другом.

32-разрядные процессоры STM

Для тех кто захочет что-то помощнее, есть готовые платы с процессорами STM, например плата с STM32F103RBT6 и TFT-экраном. Фото с eBay:

Здесь мы уже имеем полноценную отладку в полноценной IDE (из всех разных мне больше понравилась Coocox IDE), однако понадобится отдельный программатор-отладчик ST-LINK с разъемом JTAG (цена вопроса 20-40$ на eBay). Как вариант, можно купить отладочную плату STM32F4Discovery, на которой этот программатор уже встроен, и его можно использовать отдельно.

Raspberry PI

И наконец, для тех кто хочет полной интеграции с современным миром, есть одноплатные компьютеры с Linux, всем уже наверное известные Raspberry PI. Фото с eBay:

Это полноценный компьютер с Linux, гигабайтом RAM и 4х-ядерным процессором на борту. С краю платы выведена панель из 40 пинов, позволяющая подключать различную периферию (пины доступны из кода, например на Python, не говоря о C/C++), есть также стандартный USB в виде 4х разъемов (можно подключить WiFi). Так же есть стандартный HDMI.
Мощности платы хватит к примеру, не только чтобы выводить время, но и чтобы держать HTTP-сервер для настройки параметров через web-интерфейс, подгружать прогноз погоды через интернет, и так далее. В общем, простор для полета фантазии большой.

С Raspberry (и процессорами STM32) есть одна единственная сложность — ее пины используют 3-вольтовую логику, а большинство внешних устройств (например ЖК-экраны) работают «по старинке» от 5В. Можно конечно подключить и так, в принципе заработает, но это не совсем правильный метод, да и испортить плату за 50$ как-то жалко. Правильный способ — использовать «logic level converter», который на eBay стоит всего 1-2$.
Фото с eBay:

Теперь достаточно подключить наше устройство через такой модуль, и все параметры будут согласованы.

ESP8266

Способ скорее экзотический, но довольно-таки перспективный в силу компактности и дешевизны решения. За совсем небольшие деньги (около 4-5$ на eBay) можно купить модуль ESP8266, содержащий процессор и WiFi на борту.
Фото с eBay:

Изначально такие модули предназначались как WiFi-мост для обмена по serial-порту, однако энтузиастами было написано множество альтернативных прошивок, позволяющих работать с датчиками, i2c-устройствами, PWM и пр. Гипотетически вполне возможно получать время от NTP-сервера и выводить его по i2c на дисплей. Для тех кто хочет подключить много различной периферии, есть специальные платы NodeMCU с большим числом выводов, цена вопроса около 500р (разумеется на eBay):

Единственный минус — ESP8266 имеет очень мало памяти RAM (в зависимости от прошивки, от 1 до 32КБайт), но задача от этого становится даже интересней. Модули ESP8266 используют 3-вольтовую логику, так что вышеприведенный конвертор уровней тут также пригодится.

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

Вместо заключения

Я в итоге остановился на использовании Raspberry PI с текстовым индикатором, настроенным на работу с псевдографикой (что вышло дешевле чем графический экран той же диагонали). Сфоткал экран настольных часов во время написания этой статьи.

Часы выводят точное время, взятое из Интернета, и погоду которая обновляется с Яндекса, все это написано на Python, и вполне работает уже несколько месяцев. Параллельно на часах запущен FTP-сервер, что позволяет (вкупе с пробросом портов на роутере) обновить на них прошивку не только из дома, но и из любого места где есть Интернет. Как бонус, ресурсов Raspberry в принципе хватит и для подключения камеры и/или микрофона с возможностью удаленного наблюдения за квартирой, или для управлением различными модулями/реле/датчиками. Можно добавить всякие «плюшки», типа светодиодной индикации о пришедшей почте, и так далее.

PS: Почему eBay?
Как можно было видеть, для всех девайсов приводились цены или фото с ебея. Почему так? К сожалению, наши магазины часто живут по принципу «за 1$ купил, за 3$ продал, на эти 2 процента и живу». В качестве простого примера, Arduino Uno R3 стоит (на момент написания статьи) 3600р в Петербурге, и 350р на eBay с бесплатной доставкой из Китая. Разница действительно на порядок, безо всяких литературных преувеличений. Да, придется подождать месяц чтобы забрать посылку на почте, но такая разница в цене думаю, того стоит. Но впрочем, если кому-то надо прямо сейчас и срочно, то наверно и в местных магазинах есть выбор, тут каждый решает сам.

  • diy или сделай сам
  • часы для гиков
  • электроника для начинающих
  • DIY или Сделай сам
  • Электроника для начинающих

Самодельные электронные часы, элементная база — часть 1, измерение времени

Наверное, каждый гик, увлекающийся самодельной электроникой, рано или поздно приходит к идее сделать свои, уникальные, часы. Идея вполне неплоха, разберемся как и на чем их лучше сделать. В качестве отправной точки будем считать, что человек умеет программировать микроконтроллеры, понимает как переслать 2 байта по i2c или serial-порту, и может спаять вместе несколько проводов. В принципе, этого достаточно.

Понятно, что ключевая функция часов — измерение времени (кто бы подумал, да?). И делать это желательно максимально точно, здесь есть несколько вариантов и подводных камней.

Итак, какие доступные в «железе» способы измерения времени мы можем использовать?

Встроенный RC-генератор процессора

Самая простая идея, которая может придти в голову — это просто настроить программный таймер, и им отсчитывать секунды. Так вот, эта идея никуда не годится. Часы-то работать конечно будут, только вот точность встроенного генератора никак не регламентируется, и может «плавать» в пределах 10% от номинала. Вряд ли кому-то нужны часы, уходящие в месяц на 15 минут.

Модуль реального времени DS1307

Более правильный вариант, он же использующийся в большинстве «народных» изделий — это часы реального времени. Микросхема обменивается с микроконтроллером по I2C, требует минимума обвязки (кварц и пара резисторов). Цена вопроса около 100р за микросхему, или около 1$ на ебее за готовую плату с микросхемой, модулем памяти и разъемом для батарейки.

Схема из даташита:

Что не менее важно, микросхема выпускается в DIP-корпусе, значит припаять ее может любой начинающий радиолюбитель. Встроенная батарейка обеспечивает работу часов, даже если питание было отключено.

Казалось бы, все хорошо, если бы не одна проблема — невысокая точность. Примерная точность часовых кварцев — 20-30ppm. Обозначение ppm — parts per million, показывает число миллионных долей. Казалось бы, 20миллионных — это супер, однако для частоты в 32768Гц получается 20*32768/1000000 = ±0,65536Гц, т.е. уже полгерца. Путем несложных подсчетов видно, что генератор с такой разницей за сутки «натикает» лишних (или недостающих) 56тыс тактов, что соответствует 2 секундам в день. Кварцы бывают разные, некоторые пользователи писали и об ошибке в 5 секунд в день. Как-то не очень точно — за месяц такие часы уйдут как минимум, на минуту. Это уже приличная разница, заметная невооруженным глазом (когда любимый сериал бабушки начинается в 11.00, а часы показывают 11.05, разработчику таких часов перед родственниками будет неудобно).

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

Модуль реального времени DS3231

Мы не первые, кто задался вопросом точности, и компания Dallas пойдя навстречу пожеланиям, выпустила более совершенный модуль — DS3231. Он называется «Extremely Accurate Real Time Clock», имеет встроенный генератор с температурной коррекцией. Точность в 10 раз выше, и составляет 2ppm. Цена вопроса чуть повыше, но корпус микросхемы рассчитан под SMD-монтаж, паять не так удобно, зато можно купить на ебее готовую плату.

(фото с сайта продавца)

Точность в 6 секунд в месяц, это уже неплохой результат. Но мы пойдем дальше — в идеале, часы в 21 веке вообще не нужно подстраивать.

Радиомодуль DCF-77

Метод скорее экзотический, но для полноты картины его нельзя не упомянуть. Немногие знают, но сигналы точного времени передаются по радио еще с 70х годов. Передатчик DCF-77 расположен в Германии недалеко от Франкфурта, и на СДВ-частоте 77.5КГц передаются метки точного времени (да, у них уже 20 лет назад были настенные и настольные часы, которые не надо подстраивать).

Способ хорош тем, что схема имеет малое энергопотребление, так что сейчас производятся даже наручные часы с такой технологией. Готовую плату приема DCF-77 можно купить на ebay, цена вопроса 20$.

Многие часы и метеостанции имеют возможность приема DCF-77, проблема лишь в том, что до России сигнал практически не доходит. Карта покрытия с Википедии:

Как можно видеть, лишь Москва и Питер находятся на границе зоны приема. По отзывам владельцев, лишь иногда сигнал удается принять, что для практического применения конечно, не годится.

GPS-модуль

Если часы будут стоять недалеко от окна, то вполне реальный метод получения точного времени — GPS-модуль. Эти модули можно недорого купить на ebay (цена вопроса 10-15$). Например, Ublox NEO-6M, подключается напрямую к serial-пинам процессора, и выдает строки NMEA на скорости 9600.

Данные приходят примерно в таком формате » $GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,,*1A», и распарсить их даже для слабой Arduino труда не составляет. Патриоты кстати, могут приобрести более дорогой модуль Ublox NEO-7N, поддерживающий (по отзывам) как GPS так и «Глонасс».

Очевидно, что про разные часовые пояса GPS-модуль ничего не знает, так что их вычисление и смену летнего/зимнего времени, разработчику придется продумать самому. Другой минус использования GPS — относительно высокое энергопотребление (впрочем, некоторые модули можно отдельными командами переводить в «спящий режим»).

Wi-Fi

И наконец, последний (и самый очевидный на сегодняшний момент), способ получения точного времени — это брать его из Интернета. Здесь есть два подхода. Первый, и наиболее простой — использовать в качестве платы часов что-то типа Raspberry PI с Линуксом, тогда делать ничего не надо, все будет работать «из коробки». Если же хочется «экзотики» — то самым интересным вариантом является модуль esp8266.

Это недорогой (цена вопроса около 200р на ebay) WiFi-модуль может обмениваться с сервером по serial-порту процессора, при желании его можно также перепрошить (сторонних прошивок довольно много), и часть логики (например опрос сервера времени) сделать в самом модуле. Сторонними прошивками поддерживается куча всего, от Lua до C++, так что вариантов «размять мозги» вполне достаточно.

На этом тему измерения времени наверно можно закрыть. В следующей части мы поподробнее рассмотрим процессоры, и способы вывода времени.

  • diy или сделай сам
  • микроконтроллеры
  • часы для гиков

Как сделать своими руками светящиеся настенные электронные часы на Ардуино с большими цифрами

Что я использовал для настенных электронных часов с большими цифрами.

  • Arduino nano V3.0 (к сожалению, поскольку я не могу позволить себе оригинальный ардуино, я использовал китайский клон) — 150 рублей.
  • Цифровой модуль измерения интенсивности света Фоторезистор для Arduino — 60 рублей.
  • DS3231 AT24C32 IIC-модуль памяти для точного времени для Arduino — 60 рублей.
  • DC-DC преобразователь LM2596, Выходная мощность 1.23В-30В — 50 рублей.
  • 4 метра WS2811 светодиодной ленты 30 диодов / м — 700 рублей. (один WS2811 контролирует 3 светодиодных чипа)

Общая стоимость электроники: 900 рублей.

  • Термоусадочная трубка — 400 рублей (33м в ассортименте)
  • 20 шт. 5 x 7 см печатная плата — 200 рублей.
  • 3 шт. Микропереключатель — 60 рублей.
  • Припой — 50 рублей
  • Флюс — 50 рублей.
  • Кабель UTP (неэкранированная витая пара)
  • ЖК-шрифт (http://www.dafont.com/lcd-lcd-mono.font) — бесплатно.
  • Картон — бесплатно в супермаркете.
  • Полистирольная панель — 100 рублей.

А также различные инструменты.

Шаг 2: Подготовка — шаблоны цифр

  1. Скачайте и установите шрифт для часов
  2. Откройте Word или другую программу, и создайте шаблон, как на первом фото.
  • Размер шрифта ~ 800,
  • Шрифт белого цвета с черным контуром,
  • Серые полосы там, где будут светодиодные ленты

Напечатайте шаблон и вырежьте полосы канцелярским ножом (как на втором фото)

Шаг 3: Подготовка — режем картон и светодиодную ленту

Используя цифровой шаблон, вырежьте картон по размеру (не забудьте оставить место для точек между часами и минутами)

Если ваши светодиодные полосы поставляются с разъемами на каждом конце (как у меня), отсоедините разъем и разрежьте их по 3 штуки.

Шаг 4: Крепим светодиодную ленту

Используя шаблон, наклейте светодиодную ленту на картон.

Это не обязательно, но я использовал карандаш, чтобы отметить, где должны быть размещены светодиодные полосы.

Намного удобнее клеить их, когда видишь конечную форму. Благодаря этому я заметил, что оставил слишком много места для точек между цифрами и вовремя это исправил.

Шаг 5: Паяем светодиодную ленту

Теперь начинается долгий процесс пайки.

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

Цвета, которые я выбрал:

  • Синий для земли
  • Зеленый для data
  • Красный для +12В

Шаг 6: Установка Ардуино на печатной плате

Я попытался сделать эскиз в Fritzing, но не смог найти все детали ��

Итак, на первом фото схема подключения проводов, а на втором то, как это выглядит у меня.

Шаг 7: Проверка LED

Прежде чем загружать код (к которому я не имею никакого отношения), не забудьте установить библиотеку FastLED.

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

Шаг 8: Запрограммируйте часы

Спустя некоторое время мне удалось сделать часы, которые меня полностью устраивают. Однако, каждый найдет для себя, что можно улучшить.

Код хорошо прокомментирован, поэтому с ним не должно возникнуть никаких проблем.

Все сообщения отладки также прокомментированы.

Чтобы изменить используемый цвет, вы должны изменить переменную в строке 22 (int ledColor = 0x0000FF; // Используемый цвет (в шестнадцатеричном формате)). Вы можете найти список цветов в нижней части этой страницы

Если ссылка не работает, вот зеркало.

Шаг 9: Делаем формы для цифр из полистирола

  1. Вырежьте все сегменты по шаблонам, сделанным вначале.
  2. Сформируйте каждую цифру в полистироле, используя скальпель (очень жесткий) или горячий резак.
  3. На фото можно увидеть, как это сделал я.
  4. Если у вас нет гитарной струны, подойдет практически любой тонкий стальной провод.
  5. Для питания горячего резака я использовал 12-вольтовый блок питания.
  6. Также есть фото с готовым вырезом (извините, что забыл снимать в процессе).

Шаг 8: Приклейте цифры и установите рассеиватель

Когда все 4 цифры и точки будут готовы, приклейте их на картон со светодиодной лентой (я использовал двусторонний скотч)

Чтобы рассеять свет светодиодов, я наложил 2 листа бумаги поверх полистирола. Для удобства и красоты я взял один лист формата А2 и сложил его пополам.

В самом конце я вставил светящиеся электронные настенные часы в большую картинную рамку.

Игорь Самоделов

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Собираем «дизайнерские» LED-часы из подручных средств

В этом артикле я расскажу об том, как из остатков разных проектов, я собрал интересно выглядящие часы на светодиодных 7 сегментных индикаторах.

Часы у меня в спальне были самые обычные, электронные, фирмы Ajanta (индия), но со временем они стали отставать, замена батареек, кварцевого резонатора, ничего не давала – часы стали отставать до 10 минут за месяц (причём без всякой системы, иногда на минуту, иногда – на 12), потерпел я год, другой, и пришёл к выводу, что часы надо менять.

Конечно же, самый простой вариант – пойти и купить в магазине, либо заказать в интернете. Но магазинные не подошли сразу по нескольким параметрам – простые по функционалу, имели такой же простой вид и плохую точность, а приятные на вид, имели при себе метеостанцию, подключение к вайфаю и так далее, но при этом имея довольно неприятную цену. По этой причине, решил часы делать сам. Притом, это должны быть просто часы, без свистоперделок и модных, но ненужных фич, типа вайфая, датчика температуры (зачем он нужен вообще? Мое тело – лучший термометр), метеостанции, озонатора, будильника и так далее.

Начал рассматривать различные варианты изготовления, которые можно разделить на 3 варианта:

  1. Часы с матричными светодиодными индикаторами, с разрешением в 32х8 пикселей и выше, с управлением на основе дискретных микросхем типа MAX7219, HT16K33, TM1637 и многих других.
  2. Часы на основе 7 сегментных светодиодных индикаторов, либо на тех же микросхемах, что и выше, либо, в случае более крупных индикаторах, на дискретной логике, типа специализированных драйверов и транзисторных сборок типа ULN
  3. Всякая экзотика на основе газоразрядных, люминесцентных и даже на оптомеханических индикаторах.

Вариант №3 практически сразу же отмёл – подходящие по размеру газоразрядные индикаторы (ИН-18, Z568M) стоят от 100-300 у.е. за штуку, крупные люминесцентные ещё дороже, а делать брутальный колхоз типа «Электроника-7» и прочих аналогов на неонках – не хотелось по эстетическим причинам.

Остались №1 и №2 варианты. Оба я «проработал» достаточно плотно, до уровня сборки вполне рабочих прототипов, и в случае с вариантом на матричных индикаторах, решающим фактором оказалась цена – массово доступные модули на 8х8 пикселей имеют размеры около 5х5см, а я хотел сегменты покрупней размером. Покрупней модули имеют и цену покрупней, и управление там уже более сложное, чем доступно для моего уровня программирования, поэтому, остановился на варианте №2 – часы на 7 сегментных модулях.

Было изготовлено и собрано несколько отладочных вариантов, на индикаторах разного размера, и даже многоцветных, но потом пришёл ковид, изоляция, локдаун, и необходимость в точных часах как бы отпала, так что этот проект я почти забросил.

Реанимация проекта случилась почти что случайно – знакомая школа заказала ремонт табло для их физкультурного зала – рабочие при ремонте умудрились в дребезги разбить пульт, и табло перестало работать. Фирма-изготовитель такие табло больше не выпускает, пультов в наличии нет, так что пришлось восстанавливать то что было, благо, МК в пульте выжил, и испортились только индикаторные модули, схему которых я быстренько срисовал, заказал в Китае, собрал, поставил, и отдал клиенту. Но так как детали я заказывал с некоторым запасом, то основных компонентов как раз хватило на один «лишний» комплект часов.

Итак, с чего же состоят мои часы?

В первую очередь, это 4 светодиодных 7 сегментных индикатора с типоразмером в 2.3 дюима:

В вторую очередь, это печатные платы, на которых размещены эти самые индикаторы и логика, ими управляющая – Микросхемы типа CD4511 (декодер 7 сегментов с защёлкой) +транзисторная матрица ULN2003 и несколько резисторов. В наш век всяких ардуин и прочих малинок, такой антиквариат, конечно же, может показаться довольно странным, но разрешите мне напомнить – эти модули я делал как замену поломанным в пульт от табло, так что и схемотехника взята оттуда.

Далее идёт «основная» плата, которая тоже была сделана по образу такой же у табло, но куда я добавил несколько «гребенок» контактов, как в воду глядел, видимо чувствовал, что пригодятся. На этой плате размещён модуль RTC, на микросхеме DS3231, и микроконтроллер PIC16F886. Там же присутствует стабилизатор напряжения 78L05 и другая мелкая обвязка.

В корпусе часов также размещен блок питания на 12 вольт, 1 ампер (взят с большим запасом, всего часы потребляют от 12 вольт около 68мА) и понижающий преобразователь на LM2596. (Который изначально не планировался и с которым связана интересная история, но об этом – чуть пониже)

Корпус часов выполнен из фанеры (передняя + задняя панели) и из дерева Бальсы (боковины). Обтянут он самоклеящееся тканью под «мешковину», и прикрыт спереди и сзади панелями из оргстекла – дымчатое полупрозрачное – спереди, непрозрачное белое – сзади (причина применения белого в том, что больше дымчатого не было, так что сделал из того, что было под рукой)

Процесс сборки начал с изготовления передней панели. В качестве материала выступила 10мм фанера, с помощью станка с ЧПУ в ней были сделаны вырезы под индикаторы, под 5мм светодиоды (выступают в качестве разделительного двоеточия) и отверстия для крепления плат с индикаторами. В отверстия были вклеены латунные проставки длиной 4мм, с использованием эпоксидного клея.

После установки индикаторов, примерил к воображаемому корпусу другие используемые компоненты, чтоб ориентировочно прикинуть конечную толщину, и изготовить остальные части корпуса в соответствий с этими требованиями. Итоговая толщина, без учёта фронтальной и задней панели, получилась 50мм.

Части корпуса между собой склеил обычным клеем ПВА (Совет, убирайте излишки этого клея пока он не высох, так как засохший убрать очень сложно, даже наждачной бумагой и ножом) и на момент склейки скручены шпильками с резьбой М3.

«Материнская плата» через 10мм латунные проставки установлена над индикаторами с правой стороны, и соединения сделаны обычными плоскими шлейфами типа PH. И тут меня ждал облом – изначально в табло стояли разъёмы типа XH, с механической защёлкой, и проблем не возникало, а тут, так как фиксатора нет, в процессе сборки выскакивал то один шлейф, то другой. Пришлось импровизировать на месте и применить специальный, «авиамодельный» скотч для надежного крепления проводов в разъёмах.

Для настройки часов, на задней части корпуса установлена кнопка. Там же можно видеть петлю от экрана ноутбука – изначально планировал применить её в качестве шарнира, а чтоб не портить визуальный вид, спрятать её в гофру для прокладки проводки. К сожалению, красивым такой вариант не получался никак, по этой причине, вместо этой петли и гофры поставил шарнирный механизм от светильника – такие продаются практически в любом магазине, которые торгуют осветительными приборами.

Передняя часть корпуса часов была зачернена специальной краской, хотя вполне подойдёт и обычный маркер. Чернил по простой причине – несмотря на дымчатое оргстекло, светлая фанера таки проглядывала через него, придавая часам неаккуратный вид.

После того, как прошивка часов была написана и отлажена, решил отнести их домой и проверить в реальных условиях. Тут и выяснилось, что при напряжении питания в 12 вольт, и при резисторах в 470 Ом последовательно с каждым сегментом, яркость часов получилась просто гигантской, вполне можно проявлять ЧБ фотоплёнку и даже представить себе, что находишься в Амстердаме, в доковидные времена 🙂 А вот при 5 вольтах, яркость явно недостаточна. Можно было часы разобрать, снять модули, разобрать их, поменять резисторы на другие, но это было весьма непрактично, поэтому, я пошёл альтернативным путём – подключил лабораторный БП, и подобрал такое напряжение, при котором яркость свечения была приемлемой как днём, так и ночью. Это напряжение составило около 6.5 вольт. Такого готового БП у меня не было, да и крепёж и место в корпусе уже подобраны для выбранного БП. Пришлось призвать на помощь понижающий модуль на LM2596. Заменил комплектный подстроечник на такой же номинал, но с длинной ручкой, и вывел его наружу с задней стороны, чтоб иметь возможность регулировки в случае необходимости.

Блок питания и понижающий преобразователь закрепил на задней панели, используя нейлоновые проставки и винты – в целях электробезопасности. Сама панель сделана из 3мм белого оркстекла, и по всей своей площади имеет вентиляционные вырезы.

Ножка, с помощью которой часы крепятся на стену, была сделана из тех кусков фанеры, которые остались после вырезания вырезов в задней части часов.

Немножко пришлось помучатся с шарниром – будучи вкручен на вклеенную в ДСП трубку с резьбой М10, он немножко проворачивался вокруг своей оси. Пришлось сверлить боковину, нарезать резьбу и вкручивать стопорные винты.

Напоследок, немножко решил поиграться с прошивкой. Так как свободных выводов МК у меня много, светодиоды разделительного двоеточия подключил к индивидуальным выводам, и сделал так, чтоб сначала зажигается нижний, потом верхний (горят оба), потом гаснет нижний, и в след за ним – гаснет верхний, и так по кругу.

У часов нет ни будильника, ни показа температуры и вообще ничего лишнего – вся настройка делается одной кнопкой, и делается всё очень просто.

Нажимаем кнопку и держим её одну секунду – на часах пишется 00. Отпускаем кнопку, и короткими нажатиями выбираем пункт в меню, вход в который – по повторному длинному нажатию.

00 – выход в обычный режим

01 – установка часов

02 – установка минут.

В пунктах меню 01 и 02, короткое нажатие кнопки изменяет (увеличивает) текущий показатель, а длинное – возвращает в основное меню – всё очень просто, понятно и лаконично. Зачем вся эта мутотень с вайфаем, сложными меню и другими настройками – мне непонятно.

Вроде бы всё – часы собраны, установлены, и несмотря на копеечный модуль на явно неоригинальном DS3231, идут вполне точно – уже прошло два месяца с момента их установки, а они не ушли даже на секунду.

Для желающих повторить, могу выложить все чертежи, прошивки и рисунки печатных плат – мне не жалко.

Автор не входит в состав редакции iXBT.com (подробнее »)

Об авторе

Я стар, я очень стар, я суперстар 😀 你们卖家天天要找买家帮你测评但是你的广告里不说你的产品是什么东西。我们买家不是什么东西都要的,用不着10个手机套或者10个充电宝。给佣金我也不要这么多废铜烂铁。谁有心思去购买这些东西还要问你讨退款的事?而且低于 600元 的工厂产品我没有兴趣测评…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *