Назначение идентификаторов светодиодам WS2812b | NanoLeaf replica

Я пытаюсь создать Smart nanoleaf (отсюда: https://www.thingiverse.com/thing:3354082) с возможностью получения обратной связи, основанной на способе сборки панелей.

Используемое оборудование: Wemos d1 mini (ESP8266) + светодиоды WS2812B

Например, если есть 5 панелей, и они сложены одна на другую, то идентификаторы светодиодов, которые мне нужно назначить, следующие
Panel5 - LED5
Panel4 - LED4
Panel3 - LED3
Panel2 - LED2
Панель 1 - СВЕТОДИОД1

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

, 👍-2

Обсуждение

Что значит "назначить идентификаторы"? Идентификатор - это позиция в цепочке светодиодов. Это не то, что вы можете изменить., @Majenko

Возможно, вас смущает термин ** "адресуемый"**, применяемый к светодиодным струнам. Они не содержат уникальных заводских адресов (или идентификаторов), как это делают некоторые детали., @timemage

Эти светодиоды не могут быть расположены ни в каком порядке. Они всегда экспоненциальны, начиная с той, что подключена к микроконтроллеру. Каждый светодиод "идентифицируется" своим местом в последовательности. Я заключил это в кавычки, потому что на самом деле микроконтроллер будет посылать серию байтов, затем каждый светодиод возьмет первые 3 байта, которые он встретит (для 3 цветов), и пусть остальные перейдут к следующему светодиоду. Таким образом, на самом деле они не являются "адресуемыми", но могут быть использованы как таковые, потому что вы обычно знаете, в каком порядке расположены светодиоды, и, следовательно, знаете, где разместить данные для конкретного светодиода., @chrisl

Или вы говорите о положении каждой панели?, @chrisl

при сборке на стене вся схема представляет собой просто светодиодную ленту ... в программе полоску можно разделить на группы по 12 светодиодов в каждой... при желании каждая из групп может быть дополнительно разделена на 3 группы по 4 светодиода в каждой... вы можете нарисовать диаграмму на бумаге, присвоить каждому из устройств идентификационный номер (и каждому из углов вспомогательный идентификатор, если вы хотите изменить углы по отдельности) ... написать скетч, который адресует всю сборку по идентификатору или по углу, @jsotola


1 ответ


0

Вероятно, адрес каждого светодиода можно определить после сборки каждого элемента полного дисплея светодиодов WS2812. Однако, судя по тому, как сформулирован вопрос, необходим сдвиг парадигмы, чтобы понять, как работает адресация светодиодов WS2812.

Вся информация для всей последовательно подключенной цепочки светодиодов WS2812 передается на 1-й светодиод WS2812. 1-й светодиод снимает 1-й набор цветовых инструкций и сохраняет его для себя. Затем отправляет остальные инструкции следующему светодиоду. Это повторяется для каждого светодиода до тех пор, пока больше не останется инструкций для передачи. В хорошо написанной программе последний светодиод должен потреблять последний набор цветовых инструкций.

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

,