#1 2025-07-09 09:13:27

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 130

WS2812B і кольори

Дивна річ з кольорами. Взяв такий ось модуль хттпс www.aliexpress.com/item/1005003296302434.html WS2812B наче, судячи з того, що у чіпів 4 ноги а не 6. Написав програму згідно з букварем

#include <FastLED.h>
 FastLED.addLeds<WS2812B, LED_DATA_PIN, RGB>(leds, NUM_LEDS);
  leds[led] = CRGB::Green;
  FastLED.show();
  delay(300);
  digitalWrite(LED_BUILTIN, 1);
  leds[led] = CRGB::Blue;
  FastLED.show();

  delay(700);
  led++;

те що не відноситься до led опущено wink
І що с**а дивно: замість зеленого (як в коді написано) блимає червоним.  А якщо написати CRGB::Red - блимає зеленим.
Так то для мене це не критично, але може хтось стикався. Це неправильна ініціалізація ліби, чи сама ліба косячна, чи сам модуль незвичайний?

Неактивний

#2 2025-07-09 10:26:17

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeR пише:
 FastLED.addLeds<WS2812B, LED_DATA_PIN, RGB>(leds, NUM_LEDS);
 FastLED.addLeds<WS2812B, LED_DATA_PIN, GRB>(leds, NUM_LEDS);

WS2812B.pdf, остання сторінка.
src/eorder.h:9

Неактивний

#3 2025-07-09 10:48:54

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 130

Re: WS2812B і кольори

Моі глаза.. wink
Дякую wink

Неактивний

#4 2025-07-09 15:24:33

jokeer
Гість

Re: WS2812B і кольори

але не так все просто. Синій виглядає не так яскраво як зелений і червоний. Коли хоч один led червоний - всі сині гаснуть. Якась магія. Схоже доведеться міняти, що туди насправді передається.

#5 2025-07-09 15:54:16

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeer пише:

але не так все просто. Синій виглядає не так яскраво як зелений і червоний. Коли хоч один led червоний - всі сині гаснуть. Якась магія.

Це не магія, це гівняний китайський дизайн. У червоного найменше падіння напруги, у синього найбільше. Є припущення, що там керується струм не тільки окремо по кожному каналу, а й загальний. Коли червоний вмикається, напруга просідає, і синьому вже не вистачає. Хоча, як там воно насправді реалізовано в залізі - мабуть, тільки розробнику чіпа відомо.

Неактивний

#6 2025-07-09 16:00:57

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

Чи це тільки з FastLED такі ефекти, а якщо напряму всунути в стрічку 255/255/255, то світиться нормально?

Остання редакція dimich (2025-07-09 16:02:30)

Неактивний

#7 2025-07-09 16:51:53

jokeer
Гість

Re: WS2812B і кольори

Ефекти дуже цікаві.
Коли ініціалізувати fastled як GRB - червоний вирубає сині.
Коли RGB - червоний, який виглядає як зелений, не вирубає а трохи приглушує wink

Є підозра на fastled+lgt8f328. Так, мої вподобання можуть здаватися дивними wink

#8 2025-07-09 17:15:26

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeer пише:

Коли RGB - червоний, який виглядає як зелений, не вирубає а трохи приглушує wink

У зеленого падіння напруги вище, ніж у червоного, але нижче, ніж у синього.
Так в першу чергу потрібно визначити, чи це FastLED якусь гама-корекцію програмно застосовує, чи особливість самого чіпа.

Я би взагалі запідозрив, що живлення по струму не витягує, і просто напруга просідає. Але якщо кажете, що вмикання навіть одного червоного впливає на всі сині, то не схоже. Скільки у вас там всього чіпів? Пробували тільки з одним єдиним?

Неактивний

#9 2025-07-09 22:44:32

jokeer
Гість

Re: WS2812B і кольори

Ще цікавіше. Спробував запалити перші 4 діоди білим. Світяться всі, якимсь темно-червоним. Деякі мерехтять. З зеленим відтінком.
Схоже на те, що щось не так з таймінгами в lgt8.

#10 Вчора 09:44:46

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 130

Re: WS2812B і кольори

2025-07-10_09-41.png

Хм, дійсно якась фігня. Передається FFFFFF FFFFFF FFFFFF FFFFFF 000 000 000 000

Спробую іншу лібу. Гувер обіцяв, що його ліба підтримує китайску ардуїну wink

Неактивний

#11 Вчора 10:34:34

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeR пише:

https://forum.arduino.ua/img/members/3983/2025-07-10_09-41.png
Хм, дійсно якась фігня. Передається FFFFFF FFFFFF FFFFFF FFFFFF 000 000 000 000

На картинці передається Green: 0x58 / Red: 0x80 / Blue: 0x78 на 4 світлодіоди, потім 0/0/0 ще на 4. Тільки шкали часу не видно. Але аналізатор декодував правильно, так що з таймінгами, мабуть, все ок.

jokeR пише:

Спробую іншу лібу. Гувер обіцяв, що його ліба підтримує китайску ардуїну wink

Це в першу чергу потрібно уточнювати, яка саме ліба якої версії використовується. Гуверняна ліба, мабуть же, клон від цієї.

Якщо у клона МК таймінги виконання інструкцій такі ж, як у оригінала, то працюватиме так само як на оригіналі.

Неактивний

#12 Вчора 11:01:30

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

Ще би напевно знати, на яких точно чіпах у вас стрічка. По "даташитах" у WS2812 та WS2812B таймінги трохи відрізняються, хоча в межах допусків один одного. А SK6812 (теж 4 ноги) в допуски для WS2812B уже не попадає.
Хоча все одно при 16МГц гранулярність таймінгів краще ніж 62.5 нс не отримати.

Неактивний

#13 Вчора 11:23:20

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 130

Re: WS2812B і кольори

2025-07-10_11-14.png

Таймінги досить дивні.
TH+TL=1.25us - зберігається
Але TH=1us , коли потрібно 0.8+-0.15..

Це fastled. У Гувера свій імпортозаміщонний лісапет, і там з таймінгами зовсім дивно.

Неактивний

#14 Вчора 13:57:48

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeR пише:

Але TH=1us , коли потрібно 0.8+-0.15..

Пишуть, толерантність до таймінгів у цих чіпів по факту вища, ніж заявлено. Але може не у всіх smile

У FastLED гранулярність 125 нс навіть при 16 МГц: src/chipsets.h:773

jokeR пише:

У Гувера свій імпортозаміщонний лісапет, і там з таймінгами зовсім дивно.

Там же явно лежить libraries/FastLED-3.2.9, хіба ні? Чи ми дивимось у різні репозиторії?

Неактивний

#15 Вчора 14:03:02

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 130

Re: WS2812B і кольори

https://github.com/GyverLibs/microLED/ - я сюди дивлюсь. няп fastled йому потрібен тільки для сумісності з кольорами в стилі fastled. асемблерний код свій.

Неактивний

#16 Вчора 14:12:06

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeR пише:

https://github.com/GyverLibs/microLED/ - я сюди дивлюсь.

А, там так. Я в AlexGyver/GyverLamp дивився.

Неактивний

#17 Вчора 14:49:41

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

jokeR пише:

Але TH=1us , коли потрібно 0.8+-0.15..

Відповідно до коду, має би бути 0.875 мкс.
А TH=1 мкс при TH+TL=1.25 мкс відповідає UCS2903.

Неактивний

#18 Сьогодні 18:46:13

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 516

Re: WS2812B і кольори

Не знаю, що ви там компілюєте, на чому запускаєте і чим міряєте.

Ось ця програма:

#include <FastLED.h>

CRGB leds[8] = { 0 };

void setup()
{
    FastLED.addLeds<WS2812, A3, GRB>(leds, sizeof(leds)/sizeof(*leds));
    leds[0] = CRGB::White;
    FastLED.show();
}

void loop() {}

з FastLED у поточному стані гілки master на Pro Mini 16 МГц видає чесні 875 нс для TH:

SDS00001.png

Те ж саме з WS2812B, що не дивно, бо для FastLED це один і той же контролер.

Ось така смужка світиться нормально, без всяких артефактів.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму