Прочитать программно состояние ws2812b rgb светодиода

понадобилось прочитать состояние rgb ws2812b. но уперся в его низкие тайминги а именно при логическом 0 имеем 300 ns высокого и 900 ns низкого, а при логической 1 имеем по 600 ns высокого и низкого уровней.

как я понимаю элементарно на вход прерывания тратится больше времени. не пойму как правильно читать такие вещи?

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

Правильно читать правильным процессором, а не 30летним хламом, очевидно.

интересно что стоит внутри светодиода что он умеет такое читать а atmega328 не умеет. я еще хотел тиньку13 применить…

Ну уж точно не процессор с прерываниями.

iopq
Там сдвиговый регистр ИМХО

И как вы хотите светодиод заставить сообщить о своём состоянии ??? Там такого режима нет !

b707 Управлять лентой не наносекундах не проблема - sketch.ino - Wokwi Arduino and ESP32 Simulator, а вот принимать такой сигнал на AVR даже ассемблер не поможет.

1 лайк

Если писать о программистско-сексуальных извращениях, то фактически нужно за 17 тактов 16 МГц процессора (за 1200нс) успеть считать состояние пина, сдвинуть и записать в память. Превратить фазовый код в 0-1 реально просто ДО контроллера. Тогда по фронту мы защелкивает результат и обрабатываем.
На пределе, но 17 тактов хватит. Хотя это полный изврат! ИМХО.

Естественно, что значительно проще и умнее взять СТМ32!!!

1 лайк

WladDrakula за 14 тактов если передача идет на минимальных интервалах !

iopq
А с какой целью возник такой вопрос ? Может Вы не там ищете ? Расширьте немного рамки и может мы чего умного подскажем ! Тут недавно была тема про эти светодиоды и zigbee Адресная лента и zigbee - #136 от пользователя Komandir так я там даже код выложил - как посчитать число диодов в ленте, если есть доступ к выходу крайнего светодиода …

Сорри, я вставил ссылку, потому как показалось там и про чтение сигнала тоже…ошибся.
А управлять да, не проблема, даже на тиньке13

В "адафрукт неопиксель"библиотеке есть функции возврата числа пикселей в ленте и цвета указанного пикселя, но не путём чтения состояния…

надо в зависимости от состояния диода управлять исполнительным механизмом. можно даже просто отслеживать включен/выключен. я уже думаю фотодиод приспособить

А кто(что) зажигает это диод?

туда нет доступа. есть доступ только к 3м проводкам диода - плюс, минус (постоянно 5 вольт) и дата

Может проще будет использовать WS2811 в виде восьмилапого соика вместо родного 2812. Вместо светодиодов вкрячить RC-цепочки и сразу готовый сигнал управления получится :grinning:

1 лайк

интересная идея. надо проверить это

сделал проще - припаялся к одному волоску диода.

По Станиславскому - “не верю” !

а чего так?