Часы светодиодной ленты arduino

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

Большие цифровые часы на светодиодной ленте и Ардуино

Что нужно для проекта больших цифровых часов:

  • Светодиодная лента белого свечения на 12В;
  • Вспененный ПВХ пластик толщиной 5 мм;
  • Arduino Nano;
  • Модуль часов реального времени на базе микросхемы DS1302;
  • Микросхема CD4026BE – 4 шт.;
  • Транзистор S8050 – 30 шт;
  • Повышающий DC-DC модуль.

Большие цифровые часы на светодиодной ленте и Ардуино

Как сделать настенные цифровые часы из светодиодной ленты, процесс изготовления:

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

Каждый из сегментов у меня имеет по 6 светодиодов, а размер одного символа составил 12х6,5 см. Полностью весь дисплей с 4-мя символами у меня получился 40х16,5 см.

Большие цифровые часы на светодиодной ленте и Ардуино

Большие цифровые часы на светодиодной ленте и Ардуино

Аноды всех сегментов я подпаял к общей шине (здесь она плюсовая), а катод каждого из сегментов вывел к отдельному контакту разъёма, всего таких контактов 31 штука. Нашёл разъём на 33 вывода и один контакт я не использовал, а на последний продублировал плюсовой потенциал. Далее подпаял тонкими проводами к нему от символов дисплея.

Большие цифровые часы на светодиодной ленте и Ардуино

Большие цифровые часы на светодиодной ленте и Ардуино

Большие цифровые часы на светодиодной ленте и Ардуино

Для управления всех этих часов я использовал Arduino Nano. Так как напрямую к ней индикаторы подключить не получиться, у Ардуино нет столько выводов и напряжение для светодиодов требуется 12В то буду дополнительно использовать микросхемы CD4026BE, поэтому вместо 8 выводов для управления каждого семисегментного индикатора понадобится всего 2, один контакт повышает значение на единицу, а второй сбрасывает счётчик на ноль.

Большие цифровые часы на светодиодной ленте и Ардуино

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

В Ардуино нет часов реального времени поэтому нам ещё понадобится модуль часов реального времени RTC DS1302.

Большие цифровые часы на светодиодной ленте и Ардуино

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

Читайте также:  Что будет если поставить предохранитель меньшей мощности

Управлять часами можно с помощью 4-х кнопок которые подключены к Ардуине двумя проводами, какая кнопка в данный момент нажата микроконтроллер вычисляет по сопротивлению, для каждой кнопки оно своё и задаётся стоящими возле них резисторами.

Большие цифровые часы на светодиодной ленте и Ардуино

Управление происходит по такому алгоритму нажатий на кнопки:

Большие цифровые часы на светодиодной ленте и Ардуино

Нажатие на кнопку «ОК» отобразит текущую дату и через несколько секунд вернётся в режим часов:

Большие цифровые часы на светодиодной ленте и Ардуино

Также я сделал управление яркостью, так как в тёмное время суток часы могут даже освещать комнату и иногда смотреть на них довольно некомфортно для глаз, здесь на фото часы при минимальной яркости:

Большие цифровые часы на светодиодной ленте и Ардуино

А здесь включен на полную яркость, видно как комната освещается всего лишь одними часами:

Большие цифровые часы на светодиодной ленте и Ардуино

Большие цифровые часы на светодиодной ленте и Ардуино

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

Большие цифровые часы на светодиодной ленте и Ардуино

Большие цифровые часы на светодиодной ленте и Ардуино

ViVant

Всем привет, хочу рассказать о том как я попробовал повторить проект, но столкнулся с некоторыми проблемами.

Как-то раз на просторах зарубежного интернета я нашел вот такой проект часов на базе светодиодной ленты WS2812B: Big, Auto Dim, Room Clock, и мне захотелось его повторить. Часы устроены как семи сегментный циферблат и работают на RTC модуле DS3231 . Часы умеют показывать температуру, имеют кнопки для настройки и перевода на зимнее время и обратно, позже я добавил датчик влажности DHT11. Температура уже вместе с влажностью считывалась с этого датчика и выводилась раз в минуту. Хоть и в модуле часов есть температурный датчик, но похоже он показывал температуру не корректно из-за самонагрева (ИМХО).



Когда все было собрано, повозившись с библиотеками, все заработало. И тут возникло одно большое НО: положения яркости в только в двух позициях меня не устраивало. Тем более на границе значений происходило мерцание. Установка яркости на статичном значении меня тоже не очень устраивала ибо днем при установленном тусклом свете ничего не было видно, а ночью даже со значениями близким к минимуму можно было осветить всю Москву. Поинтересовавшись как в других проектах с этим справляется Alex было решено заменить такой код настройки яркости.

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

И тут все заработало, моей радости не было придела, пока не наступила ночь. Появилась проблема с отключением ленты при полной темноте. Иногда это было только на минуту, а иногда на целую ночь. Еще есть проблема со слабим мерцанием светодиодов если освещения в комнате было мало (например когда работал телик), но это было редко и длилось это одну минуту.

Читайте также:  Замена полотенцесушителя в ванной управляющей компанией

Что касается кода вот сылка на GitHub. Кое-что я перевел для лучшего понимания.

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

Thug Robot

Thug Robot

ViVant

Рисуя схему допустил ошибку. Да, на фоторезисте используется резистор на 10 кОм. Схему перезалил.

Промониторив значения на выходе фоторезистора заметил, что при слабом освещении происходили скачки этих самых значений.

Перебрав пару способов, получилось убрать мерцание и отключение ленты. Мерцание я поборол добавив в код строчку с округлением значения кратному 10, а полное отключение разрешилось добавлением единицы к значению яркости. Ибо иногда на выходе функции получалось 0. Хотя как там получался ноль я не представляю, потому что из-за наличия функций map и constrain, этого происходить не должно. Хоть и это, наверное, костыли, но это работает.

Доброй ночи, решил я сделать тоже часы на WS2812B и Arduino, перепробовал несколько скетчей из сети, но ни один так и не смог запустить. Потом нашел этот форум и здешние не запускаются. Спаял по схеме, но поставил по 1 светодиоду на сегмент, направление как у автора.
Подскажите, пожалуйста, что в скетче еще надо изменить помимо #define NUM_LEDS на свое количество светодиодов, в byte digits[13][28] = в строках цифр ставлю значения для одного светодиода, а вот в // 1*7*4 +2 количество светодиодов в ленте здесь мне поставить 1*7*4 или 4*7*1?
Ну, и все же, если я ничего не изменю в скетче, а использую под количество светодиодов автора, хоть что-то должно светиться? У меня при запуске ничего не светится вообще, компилируется и загружается, правда пишет:
C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005

# pragma message "FastLED version 3.001.005"
но это ж вроде не ошибка?

ViVant

Доброй ночи, решил я сделать тоже часы на WS2812B и Arduino, перепробовал несколько скетчей из сети, но ни один так и не смог запустить. Потом нашел этот форум и здешние не запускаются. Спаял по схеме, но поставил по 1 светодиоду на сегмент, направление как у автора.
Подскажите, пожалуйста, что в скетче еще надо изменить помимо #define NUM_LEDS на свое количество светодиодов, в byte digits[13][28] = в строках цифр ставлю значения для одного светодиода, а вот в // 1*7*4 +2 количество светодиодов в ленте здесь мне поставить 1*7*4 или 4*7*1?
Ну, и все же, если я ничего не изменю в скетче, а использую под количество светодиодов автора, хоть что-то должно светиться? У меня при запуске ничего не светится вообще, компилируется и загружается, правда пишет:
C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005

# pragma message "FastLED version 3.001.005"
но это ж вроде не ошибка?

Давно хотел сделать электронные часы на диодной ленте, и вот как-то наткнулся в инете на статью и сразу захотел реализовать — подкупила относительная простота и малое количество проводов — накосячить будет сложно.
Там же, в статье, указаны необходимые компоненты с ссылками на алиэкспресс, по которым я все сразу и заказал и стал изучать тему в ожидании посылки. Как оказалось, слегка поторопился, некоторые элементы можно было заменить, об этом ниже, в недочетах
Компоненты электроники:
— Диодная лента на микросхемах ws2811 (RGB, питание 12в) 5 метров — 700 рублей;
— ардуино нано — 200 рублей;
— датчик освещенности — 28 рублей;
— модуль реального времени RTC DS1307 AT24C32 — 37 рублей;
— преобразователь питания LM2596 — 41 рубль;
— блок питания 12 в 1А — нашел в закромах;
— датчик температуры DALLAS DS18B20 — 48 рублей;
— кусок макетной платы, две таковые кнопки, провода — нашел в закромах.

Читайте также:  Как склеить шлифовальную ленту своими руками

Для изготовления часов понадобилось так же:
— картон жесткий (изначально хотел фанеру)
— ватман (2 шт)
— двусторонний скотч (3М)
— обычный скотч
— листы вспененного полиэтилена (взял из защитных упаковок оборудования)

Изготовление часов.
1. Установка шрифта в MS Officce, и печать символа 8 на весь размер листа А4. Я сделал это в Visio

2. Нанесение границ кусков диодной ленты на картон

3. По следующему шаблону делаем разметку на вспененном полиэтилене, толщина 15 мм, и далее по разметке вырезаем.

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

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

5. Далее приклеил контуры цифр к картонке с диодной лентой:

Далее сделал из ватмана внешний корпус, хотел сделать из фанеры, деревянных реек и тонированного стекла или акрила — но пока ни времени ни возможности нет.

Электроника
Основную схему вынес в отдельную коробочку, так как такой корпус хлипковат. В итоге к часам подходит кабель, в котором:
+12В — на питание диодной ленты;
+5В — на питание модуля освещенности;
0 — общий провод (минус);
выход данных с ардуино на диодную ленту;
выход сигнала с датчика освещенности на ардуино;

На деле все получилось не так красиво, но вроде работает:

Алгоритм работы:
Часы показывают время, дату и температуру в помещении: первые 15 секунд — время, затем 3 секунды — дату, еще 3 секунды — температуру, затем снова время. С 45-й секунды вновь дата 3 секунды, температура 3 секунды и снова время.
Когда в помещении светло — яркость отображения высокая, когда темно — снижается до минимального.

Скетч
yadi.sk/d/apVZ5DBw3XYTZo
Список скетчей:
1. clock_date (02.01.2017) — отображает время, дату и температуру, слегка подтормаживает при смене показаний
2. clock_temp (09.09.2017) — отображает время и температуру, смена каждые 5 секунд
3. new_clock (04.01.2017) — отображает просто время, анимированная смена цвета каждую минуту
4. new_clock_без кнопок (09.09.2017) — то же, что и п. 3, только убрал кнопки корректировки времени
5. clock_temp_animation (09.09.2017) — скетч из п.2 с анимацией как в п.3.
6. clock_temp_x2_animation (25.11.2017) — скетч из п.5 с двумя датчиками температуры: 5 секунд время, 2 секунды — температура внутри, 2 секунды — температура снаружи (наружный отображает отрицательную температуру)

в скетче возможны ошибки — переделывал много раз

для корректировки времени в архиве отдельный скетч, иначе выставить дату проблематично

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock detector