Помогите исправить скетч (часы на WS2812B)

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
Здравствуйте. Подскажите, пожалуйста. Сделал часы на 86 светодиодах.
Все вроде бы работает, но есть проблема - в плюсовом диапазоне показывает температуру нормально, но минусовой отказывается. отображает 08.8с. Подскажите в чем моя ошибка. Прошивка не моя. В свободном доступе.
 

Вложения

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@Leon111_09, спасибо за отклик, но проблема та же 08.8 ниже нуля(

p.s. Пробовал связаться с автором, он говорит это неправильно переделали под диоды 2812 86 штук. Сказал смотреть исходники - там типа все ок. Но исходник практически такой же кроме символов (изначально проект был 30 диодов)
 

Вложения

Изменено:

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
неправильно переделали под диоды 2812 86 штук.
Знаете,он прав: по ходу неправильно рассчитан массив светодиодов под знак минус. В нашей теме в скетчах автоматически пересчитывается вывод данных на диоды- в настройках в начале скетча указываешь только сколько светодиодов в сегменте и все.
 
  • Лойс +1
Реакции: navangel

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@Leon111_09, сам я к сожалению не смогу исправить (знаний не хвати) значит буду читать нашу тему и учиться, жаль только столько времени угробил на спайку сегментов. Спасибо.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
как с порядком?
Так в шапке же все есть: лучше раз увидеть, чем сто раз услышать :). От себя посоветую взять скетч от Вячеслав45 : отлично работает и много информации можно вывести на дисплей. Если вам нужен минималистический (под атмегу 168)-там пару/тройку страниц назад человек спрашивал (я там ему скидывал 100% рабочий).
 
  • Лойс +1
Реакции: navangel

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@Leon111_09, да я уже задумывался о перепайке) популярнее схема gba---- да и монтаж приятнее. но читать (и понять) еще до утра. и есть уже пара вопросов: мне не нужен датчик освещенности(например) или как шить хекс.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
или как шить хекс.
это через программатор. У нас в теме скетчи шьются свободно через IDE.
мне не нужен датчик освещенности(например)
Все настраивается в шапке скетча: там есть строка,отвечающая за этот пункт. Да и в настройках самих часов (я имею ввиду готовых,уже спаянных и собранных) в меню есть пункт,отключающий этот датчик. Там в меню (почитайте шапку скетча) можно все включить или отключить ненужное. Например, вы в настройках включили только отображение температуры-часы и будут показывать температуру. Захотелось еще и давление: подключили датчик давления, включили вывод данных с него в меню и вуаля-у вас часы уже и давление и температуру показывает. При этом перепрошивка не нужна будет.
Вот меню настройки часов кнопками (их там всего три):
Последоватеольность соединения сигментов индикатора
{G B A F E D C} {G B A F E D C} {верхняя точка} {нижняя точка} {G B A F E D C} {G B A F E D C}
Количество светодиодов светодиодов выберается относительно количества светотдиодов на сегмент
При первом запуске выбрать режим "----" для обнуления памяти
ВОЗМОЖНОСТИ
Отображают время, температуру, давление, дату, 255 цетов (смена каждую минуту)
В режиме часов нажатие на "+" отображает температуру, а на "-" дату
Цвет отображении температуры изменяется от температуры

НАСТРОЙКИ в часах (листаются кнопкой "настройки" по кругу) менять кнопками "+" и "-":
1. (H) установка часов 0...23
2. (A) установка минут 0...59
3. (S) сброс секунд на 0 кнопками ("+" - сбрасывает сек. на 0 добавляет 1 мин.) или ("-" - сбрасывает сек. на 0)
4. (d) установка дня 1...31
5. (b) установка месяца 1...12
6. (отображается полностью) установка года
7. (C) настройка цвета (если 00 то автоматическая) 0...25
8. (L) настройка яркости (если 00 то автоматическая) 0...25
9. (t) включение датчиков температуры (0 - отк. 1 - 1 датчик, 2 - 2 датчик, 3 - оба)
10. (P) включение датчиков температуры (0 - отк. 1 - температура, 2 - давление, 3 - оба)
11. (tt) установка времени отображения температуры, давления 0...8 сек.
12. (td) установка времени отображения даты 0...5 сек.
13. (SH) установка отображениея анимации при смене минут (0 - отк. 1 - вкл. 2 - вкл. ночной режим)
14. (tH) установка количества отображения температуры и даты в минуту 1...5 раз (период 60,30,20,15,12 сек. соответственно)
15. (----) сброс настроек кнопками "+" или "-"
 
  • Лойс +1
Реакции: navangel

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@bort707,возможно, но я дошел до 8 страницы и просто появилось желание чуток улучшить, то что сделал. Да и моих знаний пока хватит только паять и прошить.
 

ASM

★★★★★✩✩
26 Окт 2018
1,604
313
@navangel, просто посмотри в код и пойми, как рисуются сегменты) Нарисуй на бумажке и будет понятно, 0 - потушен, 1 - светится
 
  • Лойс +1
Реакции: navangel

Leon111_09

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

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
неправильно переделали под диоды 2812 86 штук.
я его не переделывал: там просто была ошибка в самом начале: два кадра были совмещены в один. То,что там другие светодиоды я видел,но переписывать весь массив с 30 диодов на 86 это... ; там нет автоматической установки диодов в сегменте. Смысла переделывать не вижу-у нас в теме есть скетчи гораздо лучше,компактней,функциональней и красивее. А если полистать тему подробней, то можно найти скетч под любой запрос (ну разве что кофе в постель не будет подавать :) ).
 
  • Лойс +1
Реакции: navangel

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@kym13,этот код изначально был под 30, потом его пытались переделать под 86 и сделали, но не до конца - время, настройки и даже температура - все работает, но при измерении отрицательной температуры что-то не работает. Отображает 08.8с с минусом. В этой теме уже говорили о этом проекте, но тут есть и получше.
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
479
70
@navangel,
...этот код изначально был под 30... Вы не путайте, 30 светиков 2811 это не одно и тоже что 30 светиков 2812.
1 пиксель 2811 это физически 3 диода, а 1 пиксель 2812 это 1 диод. Вот и получается 28 шт. 2811 это 28*3=84(по 3 на сегмент) + 2 точки из 2812 итого 86.
Код изначально был рассчитан на 30 (всего пикселей, да общее количество диодов 86) но поскольку 1 пиксель 2811 это физически 3 диода, а теперь после переделки на 2812 у Вас 86 физических пикселей. Вот поэтому в коде идет сдвиг. Образно говоря вместо 36 пикселя включается 12-й. Вот на пример вам нужно 3 пикселя на сегмент на ленте 2811, то физически диодов на сегмент будет 9 (1 пиксель 3 диода), а на ленте 2812 будет 3 диода
 
Изменено:

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@kym13,так, вы смотрели скетч, который я выложил первый раз? Это переработанный скетч, который изначально был на 30 (2811*28 штук + 2812*2 штуки на точки) а его переделали на 86 штук 2812. Символы там переписали по 86 штук 2812. Не путайте меня и людей. Я может не умею программировать, но считать в школе учили.
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
479
70
@navangel,
....Символы там переписали по 86 штук 2812 ..... А я Вам про что говорю? значит не всё переписали, Вам и
Leon111_09 выше об этом писал.
 

bort707

★★★★★★✩
21 Сен 2020
3,062
912
при измерении отрицательной температуры что-то не работает. Отображает 08.8с с минусом
поясните проблему - вы имели в виду при любой температуре отображает " 08.8с" или просто заменяет "минус" на ноль? - то есть когда должно было быть к примеру "-3.1с", показывает "03.1с" ?

Что касается числа диодов... мужики, есть же универсальный код под любое число диодов, зачем каждый новичок тащит с просторов инета какую-то недоделанную фигню.... Наверняка это примерно тот код. из которого когда-то был сделан наш универсальный. Что в нем может быть нового?
Если нравится какой-то эффект - возьми и перенеси в наш код, не надо все старье сюда тащить.
 
Изменено:
  • Лойс +1
Реакции: navangel и kym13

navangel

✩✩✩✩✩✩✩
11 Янв 2022
13
1
@bort707,я уже давно понял что начал не с того, уже читаю тему с начала и действительно не стоит старое ворошить. По поводу температуры: в том старом скетче температура отображалась абсолютно нормально, но в плюсовом диапазоне вплоть до 0. С получением отрицательных чисел загорается минус под символом с (символ с все время светится при отображении температуры в верхней части afg ,а минус из этого символа d по условии if >=0 гасится), а цифры показывающие температуру не растут в минусовую сторону, а просто замирают в 08.8

p.s я не прошу допиливать старый скетч, просто интересно было в чем проблема. Сейчас читаю тему и буду пробовать собрать правильные часы)
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
(2811*28 штук + 2812*2 штуки на точки)
Я кажется понял где ошибка закралась Массив пишется обычно под один тип ленты.А в вашем скетче одновременно использовались два разных типа ленты. Проще было оставить на точки тот же тип ленты, а лишние светодиоды просто заклеить скотчем.
 
  • Лойс +1
Реакции: navangel