Тип направления матрицы из ленты ws2812b

Такойто

✩✩✩✩✩✩✩
6 Авг 2024
3
0
Здравствуйте. Народ..! Помогите пожалуйста. Хочу сделать бегущую строку показывающее разное время. Сделал матрицу из гирлянды 10 на 19. Направление с нижнего правого угла в верх. Подскажите пожалуйста как с помощью библиотеки FasLed настроить направление матрицы относительно первого светодиода. Я пытался сделать с помощь библиотеки Adafruit Neomatrix менял там (NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG) и вправо и влево и.т.д, не получается текст скролится сверху вниз или с низу в верх. Видел в скетче проекта https://github.com/vvip-68/LedPanelWiFi , эту настройку (META_MATRIX_ANGLE) но не смог понять как это реализовано. Подскажите пожалуйста как это сделать. Хотя бы ссылку, или примерчик. Хочу сделать бегущую строку показывающее разное время.
Матрикс.png
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
412
126
@Такойто,
У Гайвера есть проект бегущая строка https://alexgyver.ru/gyverString/.
Правда в последних версиях на microLED.h.
Но и в ранних, на FastLed были настройки.
#define MATRIX_TYPE 0 // тип матрицы: 0 - зигзаг, 1 - параллельная
#define CONNECTION_ANGLE 0 // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний
#define STRIP_DIRECTION 0 // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз
 
  • Лойс +1
Реакции: Такойто

Bruzzer

★★★✩✩✩✩
23 Май 2020
412
126
Просто не понимаю, эти дефайны встроенны в библиотеке FastLed или их написал Gyver.
Как вариант. Скачиваете с github весь проект в виде zip. Распаковываете в отдельную папку и ищите файлы содержащие например CONNECTION_ANGLE. В данном случае вы увидите, используется ли это в библиотеках, т.к. в проекте сохранены используемые библиотеки.
(результат - здесь CONNECTION_ANGLE используется только в гайверовских файлах).
C++:
#elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1)
#define _WIDTH HEIGHT
#define THIS_X y
#define THIS_Y (WIDTH - x - 1)
Дальше поиском находите, где используется _WIDTH THIS_X THIS_Y и пытаетесь понять логику.
Это если хотите понять. Если надо, чтобы просто работало - то просто берите готовый проект (например Гайверовский).
(В "продвинутых" IDE возможно встроен поиск. Но и в этом случае поиск по файлам часто бывает полезен.)

П.С. При ответе не стоит цитировать все сообщение. Здесь это не приветствуется.
 
  • Лойс +1
Реакции: Такойто

Сотнег

★★★★★★★
15 Янв 2020
4,243
1,466
Я пытался сделать с помощь библиотеки Adafruit Neomatrix менял там (NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG)
Матрикс.png
Если на картинке лицевая сторона матрицы, тогда
(NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG)


Подскажите пожалуйста как с помощью библиотеки FasLed
В библиотеке FastLed нет готовых настроек для формы матрицы.
Предполагается, что вы под вашу любую матрицу напишете функцию XY(), которая по заданным координатам икс и игрек вычислит для библиотеки FastLed порядковый номер светодиода.

В скетчах с бегущей строкой, использующих библиотеку FastLed, такая функция есть.
В скетчах Гайвера она обычно называется и используется не так, как задумано авторами библиотеки.
 
  • Лойс +1
Реакции: Такойто

Такойто

✩✩✩✩✩✩✩
6 Авг 2024
3
0
Огромное спасибо всем! Кое как получилось. Но теперь у меня появилась новая проблема)).
у меня в скетче есть переменные где хранятся данные (разное время) из json файла, которые парсятся с сайта.

const char* data_timings_Moscow;
const char* data_timings_London ;
const char* data_timings_Paris ;
const char* data_timings_Tokio ;


Не знаю как сделать так, что бы их вставить в место бегущего текста :

runningText = String(text1) + text2 + text3 + text4 + text5 + text6 + text7 + text8 + text9 + text10;

Если в место (text1) вставить на пример data_timings_Moscow оно скролится на матрице, но при вставке несколько через запятую выдает ошибку.
Наверное я задаю глупые вопросы. Я новичок в этом деле.

Возможно ли переменные const char* вывести на матрицу в место текста, или надо написать другую функцию в место функции runningText ?
 

Такойто

✩✩✩✩✩✩✩
6 Авг 2024
3
0
Получилось...! Спасибо Вам огромное. Только после заливки скетча в мон.порта показывает какие-то артефакты, после нажатия кнопки ресет показывает норм.
Мон1.png Мон2.png
Надеюсь я смогу организовать перезагрузку программно. Да и к матрице подключал, все отлично работает.