Контрольная сумма выходного сигнала светодиодной ленты FastLed

arduino-due led-strip ws2812

Мне интересно, подключал ли кто-нибудь выход своей светодиодной ленты обратно к Arduino, чтобы считать данные и убедиться, что лента работает правильно, что-то вроде функции контрольной суммы.

Я использую библиотеку FastLed, и, похоже, это не было сделано.

Причина, по которой я хочу это сделать, заключается в том, что когда светодиод на полосе ломается, это заставляет все следующие светодиоды сильно мерцать. Мне нужно иметь возможность немедленно выключить светодиодную полосу, если она начнет мерцать, поскольку мое устройство используется в качестве визуального терапевтического средства в школе.

Я использую Arduino Due со светодиодной лентой WS2812B.

, 👍4


2 ответа


0

Я не думаю, что светодиодные ленты поддерживают эту функцию, однако, вероятно, есть снижение напряжения в зависимости от того, сколько светодиодов включено. Так что вы можете проверить напряжение на конце ленты, основываясь на светодиодах, которые включены (предполагая, что вы это сохранили), и сравнить значения.

,

1

Посмотрите на время на листе 4 паспорта и на время на листе 3

Низкий бит имеет ширину 400 +/- 150 нс, за которым следует высокий бит шириной 800 +/- 150 нс

Высокий бит имеет ширину 850 +/- 150 нс, за которым следует низкий бит шириной 450 нс.

Чтобы сделать то, что вы предлагаете с контрольной суммой, вам придется сначала отправить контрольную сумму (минимум 3 байта, чтобы подделать данные для дополнительного WS2812B, например) и посмотреть, были ли правильно получены 24 бита, пока в это же время отправляются последние 3 байта.

Due может быть достаточно быстрым для этого. Я не думаю, что 16 МГц Arduino сможет.

Проверка уровня мощности на самом деле невозможна, поскольку во многих лентах питание подается в начало, середину и конец ленты, чтобы обеспечить равномерную яркость и не допустить перегрева дорожек питания ленты из-за избыточного тока.

,