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

Serzh2000

✩✩✩✩✩✩✩
8 Фев 2021
15
7
надо подумать. остановить часы не получится, а вот, например при нажатии двух кнопок вывести секунды на экран и нажатием + или - обнулять секунды... наверно так.
а вы пробовали залить скетч от Владислава по-моему распайка сегментов одинаковая. кнопок только три это можно исправить.
 
  • Лойс +1
Реакции: kym13

влад 55

✩✩✩✩✩✩✩
2 Июн 2020
6
0
Оформи код соответствующим тэгом, см. Правила
В моем скетче код такой-
uint8_t digits[] = { // определяем символы для отображения
// код начинается с 0b0, далее идут 7 цифр, каждая цифра это номер фрагмента, 1 - включен, 0- отключен
// далее указан получающийся символ и порядковый номер в массиве
0b00111111, // Digit 0
0b00100001, // Digit 1
0b01110110, // Digit 2
0b01110011, // Digit 3
0b01101001, // Digit 4
0b01011011, // Digit 5
0b01011111, // Digit 6
0b00110001, // Digit 7
0b01111111, // Digit 8
0b01111011, // Digit 9
0b01111000, // Digit * градус 10
0b00000000, // Digit пусто 11 ничего не показывать
0b01111100, // Digit P 12
0b01111000, // Digit % знак % из двух частей 13
0b01000111, // Digit % знак % из двух частей 14
// 0b01011000, // Digit с маленькая "С" справа вверху 15 если нужна большая закоментируйте эту строку и наоборот
0b00011110, // Digit с большая "С" справа 15 если нужна большая раскоментируйте эту строку и наоборот
// 0b01000000, // знак (-) минус 16

А у Владислава такой
//===================== Формирование цифр и знаков, какой символ из чего состоит =============================

byte digits[24] = {
0b01111110, // 0 // все начинаются с 0b0 далее 7 сегментов цифры (0 - откл, 1-вкл) справа на лево
0b01000010, // 1
0b00110111, // 2
0b01100111, // 3
0b01001011, // 4
0b01101101, // 5
0b01111101, // 6
0b01000110, // 7
0b01111111, // 8
0b01101111, // 9
0b00001111, // º 10
// 0b00001101, // с 11 "с" маленькая, раскоментировать если нужно, большую "С" закоментировать
0b00111100, // C 11 "С" большая, закоментировать если включаете маленькую "с"
0b01011011, // H 12
0b01011111, // A 13
0b01101101, // S 14
0b00000001, // - 15
0b01110011, // d 16
0b01111001, // b 17
0b00000000, // 18 пустой отключен
0b00111001, // t 19
0b00111000, // L 20
0b00011111, // P 21
0b00001111, // % 22
0b01110001 // % 23
не так как в моем , да и не хочется делать новую плату
 

kym13

★★★✩✩✩✩
14 Ноя 2020
716
118
@влад 55,И в чем разница? Судя по картинке подключения диодов которую вы выкладывали ранее одно и тоже. Дело не в том как формируются цифры, а в последовательности соединения диодов. Если диоды соединенны как на фото то и плату переделывать не надо просто прошить другой скетч.
 

влад 55

✩✩✩✩✩✩✩
2 Июн 2020
6
0
Ладно, не забивайте себе голову, пусть остается прошивка какая есть.Спасибо за участие.
 

seriy76

✩✩✩✩✩✩✩
18 Окт 2023
5
2
Помогите с прошивкой с 69 стр. Несилен в программировании. Нужна с рабочим пунктом изменения яркости. 0-авто и 1-25 -ручная.
 

Serzh2000

✩✩✩✩✩✩✩
8 Фев 2021
15
7
влад 55, попробуй .
при каждом нажатии на кнопку buttonM (увеличении минуты) секунды обнуляются.
например: сейчас на эталонных часах 17:33:06
подводим часы до 17... и минуты 33 и ждем когда на эталонных часах часах будет 17:34:00 и жмем кнопку buttonM (увеличении минуты) ... прибавится минута (будет 34) и обнулятся секунды.
надеюсь понятно объяснил. сам прошивку (скетч) не проверял, потом отпишись нормально или нет.
 

Вложения

  • Лойс +1
Реакции: влад 55

nick 56

★★✩✩✩✩✩
11 Апр 2024
146
54
А что Вы используете в качестве эталона? У меня в доме трое часов, подключенных к интернету, на одном роутере, айпишники разные и то с разницей секунд в пять говорят время. А телек так ещё больше отстаёт. Так, что синхронизировать по секундам смысла нет.
 
  • Лойс +1
Реакции: kym13

zarogoza

✩✩✩✩✩✩✩
29 Авг 2021
7
7
Уважаемые форумчане, кто подскажет в чем проблема. В скетче 1.95 если отключить часы в полной темноте, а после включить, индикация отсутствует, до тех пор пока на датчик не попадет свет.
Вот код регулировки яркости
C++:
void BrightnessCheck() {
  if (setups[4]==0) {                         // если включена адаптивная яркость
  if (millis() - bright_timer > 100) {       // каждые 100 мс
     bright_timer = millis();                // сбросить таймер
     new_bright = map(analogRead(LIGHT_PIN), 0, 1020, LIGHT_MIN, LIGHT_MAX );     // когда темно тускло
     new_bright = constrain(new_bright, LIGHT_MIN, LIGHT_MAX);
     new_bright_f = new_bright_f * coef + new_bright * (1 - coef);
      LEDS.setBrightness(new_bright_f);                                            // установить новую яркость
     }
  }else {new_bright_f = setups[4] * 10;                                          // установить яркость ручную.
  LEDS.setBrightness(new_bright_f);}
}
Как исправить этот баг.
 
Изменено:

kym13

★★★✩✩✩✩
14 Ноя 2020
716
118
@zarogoza, Сами то часы работают только на дисплей ничего не выводится. Если выставить минимум 9 то часы включаются после отключения электроэнергии но для ночного режима довольно ярко получается.
 
  • Лойс +1
Реакции: zarogoza

zarogoza

✩✩✩✩✩✩✩
29 Авг 2021
7
7
@kym13, Да это я уже понял. Минимум 9 ночью очень ярко. Это как то в коде можно исправить?
в старом методе регулировки такой проблемы не было.
C++:
void BrightnessCheck(){   // Установка яркости по датчику освещенности
  if (setups[4] == 0) brightness = map(analogRead(LIGHT_PIN), 0, 1010, LIGHT_MAX, LIGHT_MIN);  // Когда темно тускло (оригинал)
                                                                                               // при 1023 в полной темноте мерцают диоды
// if (setups[4] == 0) brightness = map(analogRead(LIGHT_PIN), 0, 1023, LIGHT_MIN, LIGHT_MAX); // Когда темно ярко
  else brightness = setups[4] * 10;
  LEDS.setBrightness(brightness);}
 

kym13

★★★✩✩✩✩
14 Ноя 2020
716
118
@zarogoza, Автор давно не появлялся здесь, он вообще сказал что больше не будет заниматься этим проектом. Надежда только на спецов программистов с этого форума у которых появится желание подправить код.
PS: Попробуйте эти.
 

Вложения

Изменено:

zarogoza

✩✩✩✩✩✩✩
29 Авг 2021
7
7
@kym13, @Sergo_ST, Спасибо Вам большое помогло. Теперь регулировка яркости работает идеально.
В 153 строке поставил
float new_bright, new_bright_f;
Замечательные получились часы. Собрал аж 4 штуки.
Года два назад делал подобные часы с датчиком DHT22 и датчиком освещенности BH1750, но прошивка у тех была, не очень.
Залил прошивку 1.95 с доработками под мои датчики, часы стали просто прекрасные. Еще добавил дополнительный светодиод для запятой.
 

Вложения

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

zarogoza

✩✩✩✩✩✩✩
29 Авг 2021
7
7
Доброго времени суток, Уважаемые форумчане. Как то тут на форуме просили прикрутить к часам настройку по Bluetooth. Это удобно когда часы висят высоко, например в цеху. В реальной жизни данные часы очень редко нуждаются в настройке и корректировки. За три года эксплуатации я корректировал время один раз. Тем не менее, а почему бы и нет.
За основу взята прошивка 1.95. В часы добавлен Bluetooth модуль HC-06.
В моей версии часов используется дополнительный светодиод для запятой. В место датчика ВМЕ используется DHT22, в место фоторезистора датчик освещенности BH1750, все остальное остается неизменным. Кнопки для настройки часов также работают. Буду рад если кому-то пригодится.
 

Вложения

zarogoza

✩✩✩✩✩✩✩
29 Авг 2021
7
7
@kym13, Схема стандартная только добавлен дополнительный светодиод для запятой, указанный на схеме зеленым цветом. Про дополнительный светодиод подглядел в скетче уважаемого форумчанина Serzh2000. Выше он свой скетч выкладывал за что ему спасибо.
Схема подключения светодиодов.jpg
 
Изменено:
  • Лойс +1
Реакции: spectr и kym13

Yuri_31

✩✩✩✩✩✩✩
7 Янв 2023
5
0
Всем всего доброго уважаемые форумчане! Т.к. не силен в программировании прошу подсказать что изменить в скетче что бы можно было перебирать только три основных цвета и белый. Конечно если это не требует глобальных изменений.
 

Вложения

Изменено:

kym13

★★★✩✩✩✩
14 Ноя 2020
716
118

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

xatler

✩✩✩✩✩✩✩
26 Сен 2023
2
0
Всем доброго. Собрал уже 3 часы с прошивкой Clock_1.9_final от Вячеслава_45. с 2 и 3 диодами на сегменте, ни каких проблем не замечено и всё устраивает. но последние собрал на одном диоде на сегменте. при включении показывают температуру норм но через минуту температура теряется и показывает 0. есть у кого такой баг? и как лечить?