Большие часы на адресных светодиодах 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. Кое-что я перевел для лучшего понимания.

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

Комментарии

sashok1958

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

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
@sashok1958,я работаю в рекламе ,мне кажется без проблем най рекламистов в городе и напрямую пообщаться с фрезером,думаю он не откажет,там более из остатков материала ,сегменты вырезал из ПВХ 8мм две штуки остальное из 3мм ПВХ если нужно есть файл на фрезер 160*400мм

@sashok1958, размер 160*400 файл для фрезеровки
 

Вложения

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
flayer, а ПВХ пенопласт это похоже тоже самое внутри пенопласт а сверху с обоих сторон пластик
 

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
@sashok1958,нет это пластик из которого иготавливают стенды вывески буквы вся реклама из ПВХ

@sashok1958,накладки на стекло 1 см торцовой запиливал под 45 и боковины тоже на фрезе
 

Boroda22

★✩✩✩✩✩✩
23 Фев 2022
251
42
Ребята, подскажите пожалуйста по схеме, мне кажется кондеры я не совсем верно расположил
ColorClock-sketch_bb.png
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@Boroda22, А зачем два конденсатора? Одного за глаза и лучше ближе к ножкам питания ардуины или прям на ножки.
 

Boroda22

★✩✩✩✩✩✩
23 Фев 2022
251
42
@kym13,тут получается нужно и для ленты, и для ардуинки, ориентировался на вот такую схему
ws8-1-1024x423.jpg
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@Boroda22, Конденсатор конечно лишним не бывает, но на ленту его ставить не вижу смысла, если лента длинная то лучше питание продублировать через определённые промежутки. Я собрал проект на RGB матрице 128x64(8192 светодиодов) так конденсатор установил на клемнике питания матрицы и всё работает.
 
  • Лойс +1
Реакции: Boroda22

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
только конденсаторы лучше на 10в

boroda, поставил на 1000 мкф в конце ленты ,а в начале ленты 470 мкф
 
  • Лойс +1
Реакции: kym13

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
Собрал в корпус из композита" альтек" с лева отверстие под БМП 280 с верху кнопки будут висеть в цеху
 

Вложения

lunin

✩✩✩✩✩✩✩
10 Дек 2022
9
0
белый материал это пвх?а то я собрал часы а как расеить свет не знаю)))
 

flayer

★✩✩✩✩✩✩
31 Янв 2023
10
12
@lunin,с разбитой ЛСД матрицы фильтра и стекло там есть,Я так и поступил

@Boroda22, пришли в личку
 

Boroda22

★✩✩✩✩✩✩
23 Фев 2022
251
42
@flayer, держи, но оговорюсь, скетч сырой, еще в процессе допилки, но основной функционал работает, думаю разберетесь (ориентируйтесь на код, комменты иногда пиз....т:))
 

Вложения

  • Лойс +1
Реакции: flayer и kym13

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
@Boroda22, спасибо ,скетч загрузил на 6 светодиодов на сегмент,дополнительно две библиотеки загрузил ,само решение мне понравилось ,делал наподобие скетч с Хабра ,там управление через блютуз,часы подвешены высоко и управляют ими не лазая наверх
 

Yuri_31

✩✩✩✩✩✩✩
7 Янв 2023
3
0
Добра всем организаторам, участникам и особенно "генераторам" идей этого форума! Повторил эти часики, 4 диода на сегмент, 18В20 для температуры внутри и фотоэлемент. Остальное мне не нужно. Все заработало сразу, без всяких танцев. Размер получился 560х200х15(Д.Ш.Т). Основа фанера 12мм, в ней вырезаны сегменты на ЧПУ и накрыто светорассеивателем из жк матрицы. Увидел кум... и захотел себе такие... Решил сделать чуть побольше, по 5 светиков на сегмент. Конфигурация та же. Размер получился 610х260х15. Завелось все сразу, но, есть вопрос. При затемнении фоторезистора лента начинает хаотично мерцать (ярче-тусклее), причем вся одновременно и на любом цвете, при этом ничего не сбивается. На обеих часах примерно одинаково. Ни какие действия типа блокировочных кондеев по питанию и цепям светорегулировки к упеху не привели. В программировании не силен. Было ли у кого то подобное и как решили?
 

sashok1958

✩✩✩✩✩✩✩
15 Май 2021
42
5
Yuri_31,это дело ШВАХ у ВАС и это сложно найти,ноя подскажу ,неисправен какой-то светодиод или вернее внутри диода стоит стабилитрон на 5 ,1 вольта и он неисправен и как найти,берёшь и снижаешь питание до критического миниума 3,3 вольта и смотришь все погасли а неисправный светится

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

Yuri_31

✩✩✩✩✩✩✩
7 Янв 2023
3
0
Быстренько попробовал... Питание от ЛБП HY3005D-3, Плавно ументшаю, при 2,7v ардуинка виснет, перестают мигать точки и ничего не меняется, те цифры что светились до зависания продолжают светится до уменьшени напряжения вплодь до 1.7v яркость естественно падает. я так понимаю нужен скетч чтобы засветить все, а ленту питать отдельно от ардуинки. Поправьте если не так.

Лента разделена, Каждая цифра по питанию на общюю "шину"

Если последовательность на правильная, то и отображение было бы кривое...

Да и как то не понятно, два изделия и один и тот же косяк...Чуть позже продолжу, сейчас есть другие задачи. Спасибо за помощь.
 

Bass70

✩✩✩✩✩✩✩
19 Фев 2023
3
0
Доброго всем утра и с праздником Ваших женщин. Не пинайте сильно,а ткните носом, запутался уже. Прочитал весь форум,куча информации и каша в голове. Хочу сделать часы с температурой и влажностью, если правильно запомнил то под мои цели подходит скетч1.95, но в папке только скетч и нет схемы сборки и деталей. Подскажите из опыта сборок рабочие модули температуры и влажности.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
в папке только скетч и нет схемы сборки и деталей.
Схему сборки возьмите их шапки темы.Она обычно одинаковая под все скетчи, что тут размещены.
Подскажите из опыта сборок рабочие модули температуры и влажности.
Температуру и влажность дает только один модуль BME280. Но китайцы ему цену никак не сложат. А вообще,модули берите из той же схемы подключения, и по маркировке ищите их на алике.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,253
1,297
Москва
@Leon111_09, dht22 точно так же дает температуру и влажность. А так же dht11 И их аналоги. Но интерфейс их отличается от i2c

@Bass70, по своему опыту: Недавно сделал подобные часы, но с учетом сторонних требований, т.е. полностью свой вариант. Тестирую на столе пред тв. Так вот по наблюдениям влажность интересна мне как самое последнее из параметров. Куда полезнее давление, по которому видно изменение погоды. Так что лучще взять BMP или тот же BME, с давлением.
 
  • Лойс +1
Реакции: Leon111_09

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
dht22 точно так же дает температуру и влажность. А так же dht11 И их аналоги. Но интерфейс их отличается от i2c
Эти датчики в этом проекте не используются, я потому их и не упоминал. Кстати,ДНТ11 как раз подключается по i2c,у меня дома пару таких датчиков лежит, я на их базе делал простейшие часы с температурой/влажностью.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,253
1,297
Москва
Те датчики типа dht11, dht22 и еще какой то из этой серии типа 22, но с другой маркировкой, все используют подключения типа Onewire.
Интересно посмотреть на Ваш датчик dht11, я такие не встречал.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
и еще какой то из этой серии типа 22,
АНТ маркировка,цифры такие же.
все используют подключения типа Onewire.
Интересно посмотреть на Ваш датчик dht11, я такие не встречал.
А там ничего нет особого: на шилде как и на самом датчике четыре контакта (хотя по сути один неиспользуемый,подключение идет по трем контактам).Там два контакта идет питание (+/-) и третий контакт-дата( с него снимаются показания температуры/влажности,подключается к МК практически на любой
пин).
А вообще,вы правы,это простейший датчик.Это я чет затупил (полдня с трона не слезаю :( )