Обновить

Крутые часы на адресных диодах (часть 2)

Разработка под ArduinoDIY или Сделай сам
Tutorial

Часть 2. Сборка

Первая часть проекта была посвящена используемым компонентам и вызвала довольно много комментариев и вопросов. В данной статье я подробно опишу процесс сборки и опишу принцип выбора компонентов.

Архив проекта

Для начала нужно скачать шрифт, после чего в Word'е на листе формата А4 (ну или формат выбирается в зависимости от желаемого размера часов) шрифтов размера ~990 точек печатаем цифру "8" с параметрами шрифта: заливка текста - белый цвет, контур текста - чёрная сплошная линия. Полученную цифру печатаем на принтере и переходим к следующему этапу.

В итоге получается так:
Готовый шаблон
Готовый шаблон

Чтобы в дальнейшем удобнее было располагать ленту, можно там же, в Word'e нарисовать серые прямоугольники по размеру отрезков ленты.

Далее нужно взять основу наших часов (то есть "заднюю стенку"). Я использовал кусок стеклотекстолита толщиной примерно 1 мм: он прочный и лёгкий. Однако для этих целей вполне подойдёт и плотный картон.

Далее можно сразу перенести шаблон на основу, однако, мне кажется, удобнее пойти другим путём:

Вначале вырезаем кусок пенополистирола по размеру основания (это будет основная часть корпуса часов), после чего переводим полученный шаблон 4 раза на нашу основу (я использовал обычную копировальную бумагу), не забывая про разделитель ("точки") часов и минут.

Далее вырезаем полученные цифры и уже по ним отмечаем линии для наклеивания ленты на основу.

О материалах корпуса

Как я уже говорил в первой части, я для изготовления корпуса использовал экструдированный пенополистирол "техноплекс" толщиной 20 мм: он серый и легко режется ножом.

При желании можно использовать другой пластик или вообще использовать 3d-печать.

Диодную ленту нарезаем на отрезки соответствующей длины по меткам: при использовании ленты с плотностью 60 диодов на метр получается по 6 диодов на сегмент цифры, на точки было использовано по 2 диода.

После этого наклеиваем полученные отрезки ленты на основу, соблюдая при этом схему: на ленте имеются контакты "DI" и "D0", которые дополнены стрелкой и обозначают направление соединения сегментов ленты.

Схема подключения ленты
Схема подключения ленты

Наклеенные фрагменты ленты располагаем согласно схеме: DI - начало сегмента, DO - конец сегмента.
Сегменты точек располагаются сверху вниз.

Наклеенные сегменты нужно спаять между собой (соответственно "+" с "+", "-" с "-", "DI" - с "DO"). Я для соединения сегментов между собой использовал зачищенную витую пару. К началу первого сегмента ленты припаиваем три провода, которые выводим через подложку на обратную сторону часов.

В итоге получается такая конструкция:

Лента, наклеенная на основание, и накрытая пенополистиролом
Лента, наклеенная на основание, и накрытая пенополистиролом

К сожалению, первоначальную сборку часов производил давно и фотографии не сохранились.

Особенности подключения ленты

AlexGyver рекомендует в цепи питания ленты использовать конденсаторы, например так:

Я конденсаторы не использовал, однако лучше поставить
Я конденсаторы не использовал, однако лучше поставить

Далее на тыльной стороне часов размещаем блок электроники и соединяем следующим образом:

Пин датчика

Пин arduino

DHT11/DHT22 (датчик температуры)

PIN7

Лента (DI)

PIN13 - через резистор

Лента ("-")

Дополнительно на "землю"

DS3231 (часы) SDA

SDA (или PIN A4)

DS3231 (часы) SCL

SCL SDA (или PIN A5)

BH1750 SDA

SDA (или PIN A4)

BH1750 SCL

SCL SDA (или PIN A5)

Bluetooth RX

TX

Bluetooth TX

RX

Пин ленты DI обязательно подключается к arduino через резистор 200-500 Ом. В противном случае очень велик шанс спалить не только микроконтроллер, но и все подключённые к нему датчики.

Кроме того, в цепь питания модуля часов (прямо на плату, между VСС и GND) крайне рекомендуется впаять керамический конденсатор ёмкостью 0,1-1 мкФ (маркировка 103 или 104). Конденсатор будет сглаживать питание модуля реального времени, что увеличит точность часов.

UDP: спасибо за подсказку An_private:

103 — 0.01мкФ

104 — 0.1мкФ

105 — 1мкФ

За эти рекомендации по применению конденсатора спасибо AlexGyxer

Если используется шилд, то проблем с подключением не возникает.
Если шилд не используется, то датчик освещённости припаивается последовательно к выходу модуля часов:

Важно! Если используется модуль часов мини-формата, то он подключается к выходу "3.3V"

DS3231-mini
Компактный DS3231
Компактный DS3231

DS3231 в компактном исполнении. Питается от 3.3 Вольт!

Все концы "+" и "-" нужно соединить между собой и подключить к блоку питания, после чего можно будет загружать прошивку. При этом для удобства подключения соответствующие выводы датчиков можно подключать к выходам VCC (+) и GND (-) на шилде, а ленту питать напрямую от блока питания (в обязательном порядке).
Однако и здесь есть нюансы:

  1. При прошивке платы модуль bluetooth должен быть отключён от платы. Если используется шилд - то просто прошивается arduino, которая потом вставляется в шилд. Если шилд не используется, то нужно отключить модуль bluetooth от пинов RX/TX.

  2. У меня модуль bluetooth по необъяснимым причинам не хотел работать (даже при подаче питания напрямую). Проблема решилась питанием arduino через USB-порт. (Был спаян самодельный переходник от блока питания на USB-A, к которому присоединёна arduino кабелем на micro-USB через её штатный разъём). Дополнительно можно припаять выводы питания на шилд, чтобы питающие пины шилда работали от блока питания.

  3. Bluetooth перед подключением рекомендуется настроить.

  4. Имейте ввиду, что на датчик освещённости должно попадать примерно то же количество света, что и на лицевую часть часов.

О питании платы

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

  1. В данном проекте при пряморукости сборки ограничение по току не требуется (в принципе не возникнет ситуации при потреблении такого тока, что БП сгорит - максимум, возникнет просадка напряжения, и то вероятность её крайне мала). Хотя при желании, конечно, можно и 10А БП поставить.

  2. Мой БП выдаёт примерно 5,5 вольт, так что питать arduino через порт 5V не слишком правильно, так как питание идёт напрямую на МК.

  3. Питание через порт VIN даёт нормальные результаты, хотя правильно подавать минимум 7 вольт, так что вариант тоже не подходит. Плюс ко всему модуль bluetooth не запустился.

Кто хочет узнать подробнее про питание платы - всё отлично расписано здесь.

Схема подключения
Схема подключения
Схема подключения

В качестве рассеивателя я использовал поликарбонат "опал", а в качестве рамки отлично подошёл кабель-канал шириной 25 мм (его широкая часть), предварительно удалив излишек выступа с лицевой стороны часов.

UPD:
Часть 1 (компоненты): https://habr.com/ru/post/535884/
Часть 3 (прошивка и алгоритмы): https://habr.com/ru/post/537622/

Теги:arduinoсамоделкичасысветодиодная лентаадресные светодиоды
Хабы: Разработка под Arduino DIY или Сделай сам
Рейтинг +9
Количество просмотров 8,1k Добавить в закладки 39
Комментарии
Комментарии 9

Похожие публикации

Ведущий разработчик C++/Qt под Android
от 180 000 ₽2GISМожно удаленно
iOS-разработчик
от 200 000 до 220 000 ₽Power TechРязань
Middle Flutter Developer
от 150 000 ₽GameramУльяновскМожно удаленно
Senior Flutter Developer
от 200 000 ₽GameramМожно удаленно

Лучшие публикации за сутки