Большие часы на адресных светодиодах WS2812B

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

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




Untitled Sketch_МП.png
И главное нанести много горячих соплей

IMG_20180907_120755.jpg


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

C:
void BrightnessCheck(){
  const byte sensorPin = BRI_PIN; // light sensor pin
  const byte brightnessLow = 1; // Low brightness value
  const byte brightnessHigh = 50; // High brightness value
  int sensorValue = analogRead(sensorPin); // Read sensor
  Serial.print("Sensor is: ");Serial.println(sensorValue);
  sensorValue = map(sensorValue, 0, 255, 1, 100);
  LEDS.setBrightness(sensorValue);
  };
вот такими строчками:
C:
void BrightnessCheck() {

  if (auto_bright) {                         // если включена адаптивная яркость
    if (millis() - bright_timer > 100) {     // каждые 100 мс
      bright_timer = millis();               // сброить таймер
      new_bright = map(analogRead(BRI_PIN), 0, bright_constant, min_bright, max_bright);   // считать показания с фоторезистора, перевести диапазон
      new_bright = constrain(new_bright, min_bright, max_bright);
      new_bright_f = new_bright_f * coef + new_bright * (1 - coef);
      LEDS.setBrightness(new_bright_f);      // установить новую яркость
    }
  }
};

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

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

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

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

Комментарии

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@Leon111_09, ...батарейка села? ... А при чём здесь батарейка? Батарейка это резервное питание RTC на случай отключения электроэнергии, а диод что отпаял правильно сделал. Эти модули рассчитаны на работу с аккумуляторами LIR2032 и если диод не убрать то на батарейку идёт 5 вольт, а это не есть хорошо она начинает вздуваться.
 

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
смотрите питание модуля ,неправильно запитан,паралельно литиевой батарейки стоит питание от 5 вольт ,там диод и резистор ,уберите эту хрень и заблокируйте ёмкостью 100 н ,при скачках напряжения,включения и отключения это как раз и мешает и посмотрите куда у часов идёт ресет
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru

poty

★★★★★★✩
19 Фев 2020
3,223
937
@lunin, скорее всего - модуль часов "китайский". В теме часов многие этого уже накушались.
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@poty,.... модуль часов "китайский".. А они другие бывают? Заказывал все модули DS3231 на Алике (штук 15 в разном исполнении) никогда подобной проблемы не было. Да, отстают на пару минут или вперёд на пару минут идут через несколько месяцев работы, но чтобы в сутки на 2 минуты....
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
@kym13, У меня лежит модуль DS1307 проблемный (тоже из китая но чип у них используется один и тот же): он в основном стоит (просто не считает время), но иногда запускается. Так что тут лотерея: может нормально работать а может "как повезет"
 
  • Лойс +1
Реакции: kym13

poty

★★★★★★✩
19 Фев 2020
3,223
937
@kym13, почитайте ветку часов, поймёте о чём я. Возможно, неверно выразился. Модуль, действительно, китайский по определению. Но вот микросхема в нём - не китайская. И, увы, на Али лотерея: повезёт -не повезёт. Могут вместо SN вариант M продать, могут вроде SN, но с огромным расхождением в точности хода...
 
  • Лойс +1
Реакции: kym13

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
poty, у этих модулей названных ВАМИ питание разное 5 и 3 вольта,а бегут они от скачков нет блокировочного кондёра и особенно около батарейки и диод который подзаряжает батарейку ,надо убрать,он нужен когда используется ионистор на 2,5 вольта
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
@sashok1958, с чего Вы взяли?
По datasheet DS3231S, SN, S+, SN+:
1673614291742.png
DS3231M:
1673614365391.png

А реальные отличия обсасывали уже долго очень в тех ветках, про которые я говорю.
Вопрос питания стоит, конечно, но, при наличии нормальной батарейки, не должен приводить к проблемам. Я знаю несколько случаев, когда именно наличие конденсатора в цепи питания микромодуля спасали ситуацию, но с моей точки зрения, это объяснимо не совсем питанием.
Модуль отстаёт даже при питании непосредственно от батарейки (то есть, без "шумного" внешнего питания).
Кстати, на микромодуле диод отсутствует, это не спасает от некачественного ходя часов.
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
там же кварц вроде встроен , может перегретый или бракованный
 

lunin

✩✩✩✩✩✩✩
10 Дек 2022
9
0
от прошивки это не зависит
да,уже понял поставил другую прошивку тоже отстают за ночь около двух минут,скорее всего получается часы реального времени голову пудрят,батарейка там новая,вольтаж проверил

еще вопрос в ds 3231 встроен датчик температуры,а если его использовать только,или он не точный?
 

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
lunin, температурный датчик будет показывать нормально если ВЫ вынесете не более 30 см провода на поверхность часов,тогда ещё будет показывать датчик нормально, poty ,во всех буржуинских схемах на часовом модуле стоит ионистор 2,5 Fx 2,5v ,он как раз размером с батарейку литиевую 2032
 
  • Лойс +1
Реакции: lunin

poty

★★★★★★✩
19 Фев 2020
3,223
937
@lunin, датчик температуры там измеряет температуру внутри корпуса для устранения температурного дрейфа. Внешняя температура практически всегда будет отличаться.
@sashok1958, мы же сейчас говорим о модулях, которые используются в данном проекте. Причём здесь буржуинские схемы? Да, в "большом" модуле имеется диод+резистор для зарядки чего-то, что может быть установлено вместо батареи. Но это влияет на сам источник питания, не на стабильность DS3231.
 

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
poty, я применил плату от Вячеслава,и выпаял часовую микросхему 3231 на 5 вольт 16 ног на 3.3 вольта 20 ног вот и вся разница ,плата SMD,часы уже полгода идут точно,в плате не резистора и диода для подзарядки,есть только блокировочные кондёры ,я ставил керамику на 10 мкф вместо батарейки ,при отключении ,хватает на несколько часов заряда кондёра
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
@sashok1958, Не очень понимаю, как Вы определили , что одна микросхеиа на 5В, а другая - на 3,3В? Ранее я уже приводил данные из datasheet, что они все могут работать при напряжении 2,3 - 5,5В.
Если в используемом Вами как доноре микросхем модуле была удачная партия микросхем, то понятное дело, что они работали бы так же и в новом месте, без самой платы модуля (повреждение при перепайке исключаем пока из рассмотрения).
 

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
poty, покупаешь отдельно микруху ,стоит дороже чем модуль,я читал что 20 ног это 3,3 вольта,посмотрите у китайцев продают,маленькие модули на 3,3 вольта и там стоит микруха 20 ног и этот модуль стоит дороже
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@poty, ....как Вы определили , что одна микросхема на 5В, а другая - на 3,3В? .... sashok1958 немножко попутал микросхемы RTC дело не в питании, а в корпусе, питание у всех DS32xx одинаковое 2,3-5,5 вольт. А вот корпуса разные, DS3231 выпускаются в 2-х корпусах SO-8 и SO-16, а у DS3232 -34 SO-20, разница между 3231 и 3232-34 в том что последние имеют интегрированную SRAM объемом 236 байт. По функционалу они почти одинаковые но корпусное исполнение SO-20 затрудняет ее использование вместо предыдущих вариантов RTC.
 

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
kym13,имею 3232 и никакой разницы между 3231,кроме большего количества ног,отличается только 3234,включал питание 5 и 3 вольта работает одинаково
 
  • Лойс +1
Реакции: kym13

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
Собрал часы из пвх 1 диод, вырезал на фрезе сегменты закрыл оргстеклом с разбитой матрицы lsd еще пару пленок оттуда Размер 16*40 см
 

Вложения

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
Вырезал в рекламном агентстве на фрезерном станке ПВХ 3мм для рамки и подложки диодов,ПВХ 8 мм для сегментов 2шт получилось 16 мм стекло фильтр от монитора компьютера ЛСД вырезано вместе с фильтрами по размеру 16*40 см и клей космофен , забыл диоды в отверстие 5 мм вставил с обратной стороны ещё прижал рамкой 8мм 160*400 *10мм и сверху крышка 3*166*406мм
 

Вложения

  • Лойс +1
Реакции: maksland, kym13 и Boroda22

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@flayer, ...стекло фильтр от монитора компьютера ЛСД ... Всё равно сегменты видно. Я под стекло(оргстекло) вставлял белую подложку(не знаю как она правильно называется) от ЖК телевизоров их там два вида одна тонкая другая потолще, с той что тоньше цифры четкие с толстой немного размытые, вообще сегментов не видно, получается при выключенных часах белый фон. Это не претензия, это мысли вслух, вдруг кому пригодится.
 

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
@kym13,у полный набор фильтров из пакета это сендвич больше понравился ,по разному набирал
 
  • Лойс +1
Реакции: kym13

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
@maksland,это стекло специально для торцевой подсветки в нем много мелких насечек с фильтрами надо