Например TDA7294

Форум РадиоКот • Просмотр темы - RGB гирлянда (WS2812b)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 21:37:27

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 179 ]     ... , , , , 9
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пт фев 22, 2019 11:10:18 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 794
Откуда: Ижевск
Рейтинг сообщения: 0
мне хотелось бы без ардуины разобраться в процессе ) Как раз весь смысл в том чтобы запариться и разобраться как оно происходит ) Но пока туго


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пт фев 22, 2019 12:33:24 
Опытный кот

Карма: 16
Рейтинг сообщений: 74
Зарегистрирован: Вс янв 19, 2014 00:55:09
Сообщений: 736
Рейтинг сообщения: 1
Вот хороший пример без посторонних библиотек. Я оттуда брал ассемблер в качестве драйвера для светодиодов, а все остальное писал на СИ. Штучка рабочая. С нею тинька 85 на 8 мгц, без кварца, управлялась с 80 ледами вполне нормально.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 19:29:12 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 775
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4991
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Давайте начнем сначала... Есть какая-нибудь приблуда недорогая, чтобы управлять этими светодиодами проще. Ну, SPI какой-нибудь или еще чего, чтобы тупо через DMA кидать в него байты, он уже сам со своими периодами разбирался. И чтобы массив данных соответствовал количеству светодиодов. И вообще, какие-то неудобоваримые.
В том же STM32 слово - это 32 бита. Для светодиода надо всего 24. Значит остается старшие/младшие 8 бит свободными... Куда их девать? А для АВР все наоборот, там всего 8 бит, значит надо тратить 3 байта на каждый светодиод. Тоже не шибко удобно.
Слышал где-то, что есть такие светодиоды, которые по SPI сразу работают, но стоят дороже. Может можно одну такую микру вытащить, а дальше она уже как обычно в цепочке с остальными диодами работать будет?

_________________
Станислав


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 19:58:12 
Опытный кот

Карма: 16
Рейтинг сообщений: 74
Зарегистрирован: Вс янв 19, 2014 00:55:09
Сообщений: 736
Рейтинг сообщения: 3
СКАЗОЧНИК писал(а):
В том же STM32 слово - это 32 бита. Для светодиода надо всего 24. Значит остается старшие/младшие 8 бит свободными... Куда их девать?
Отдать следующему светодиоду.Что в STM32, что в AVR - 3 байта на "точку" вынь да положь. :) Сейчас появились на рынке и 32-битные светодиоды RGBW, там добавился белый светодиод.
СКАЗОЧНИК писал(а):
Слышал где-то, что есть такие светодиоды, которые по SPI сразу работают, но стоят дороже.
Ага, даже устаревшие WS2801 стоят дороже WS2812, АРА102 еще дороже. За счет одного "лишнего" провода в шине, эти светодиоды гораздо менее строги к таймингам и управляются тоже гораздо быстрее. POI и виртуальные экраны на АРА102 строят давно.
СКАЗОЧНИК писал(а):
Может можно одну такую микру вытащить, а дальше она уже как обычно в цепочке с остальными диодами работать будет?
Не будет. Не хватит после нее одного проводка.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 20:14:06 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 775
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4991
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Как так? Китайцы светодиоды придумали, собственный протокол изобрели, а железное воплощение связи между интерфейсами нету!? :kill: :facepalm:

Да и отдать 8 бит следующему светодиоду из 32 как-то тоже не сподручно, как тогда организовывать массив, чтобы, например заполнить матрицу 100х100? и еще и мультики на нее выводить какие-нибудь?

И как я еще понял, если по DMA из памяти пулять, то там нет промежуточных звеньев... Т.е. либо целиком байт из массива и сразу в регистр отправки SPI, либо в регистр чтобы ШИМ настроить. И тогда вообще жуть получается, что каждый бит из 24 для светодиодов закодирован своим байтом. И на 100 светодиодов надо уже 24*100 = 2400 байт. Жуть.

_________________
Станислав


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 21:10:29 
Опытный кот

Карма: 16
Рейтинг сообщений: 74
Зарегистрирован: Вс янв 19, 2014 00:55:09
Сообщений: 736
Рейтинг сообщения: 3
СКАЗОЧНИК писал(а):
... как тогда организовывать массив, чтобы, например заполнить матрицу 100х100? ...
Массив байтовый - 1 кадр = 100х100х3 байт. Дальше, по указателю = (номеру пиксела х 3), заполняете 3 ячейки подряд значениями цветовых каналов GRB этого пиксела.
СКАЗОЧНИК писал(а):
И как я еще понял, если по DMA из памяти пулять, то там нет промежуточных звеньев... Т.е. либо целиком байт из массива и сразу в регистр отправки SPI, либо в регистр чтобы ШИМ настроить.
Про DMA толком не знаю, там вроде потоки какие-то, а вам нужно ведь дождаться отправки байта по SPI или комплита таймера, чтобы положить следующий байт в регистр SPI либо перестроить длительность ШИМа. По прерыванию - следующий байт и т.д.
СКАЗОЧНИК писал(а):
И на 100 светодиодов надо уже 24*100 = 2400 байт. Жуть.
Если напрямую посылать. На деле, не надо столько :)) Подготовили 2 байта: 1 - кодирует посылку "0", второй - посылку "1". Теперь побитово шерстите массив, и по состоянию проверяемого бита, отдаете ШИМу или SPI тот или иной подготовленный байт. И DMA не пригодится и между прерываниями чайкУ можно попить.
Можно попробовать еще сэкономить память, если не планируется много оттенков. Тогда в памяти надо создать массив - палитру всех используемых оттенков, а в кадровом массиве держать индексы палитры. Кадр уменьшается в 3 раза. Если палитра до 16 цветов, можно в одном байте закодить состояние 2-х пикселов. Так еще уполовинили массив.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Ср мар 13, 2019 03:00:45 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 775
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4991
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Точно блин! Я же не с АВРками, все думаю на уровне регистров.... А можно же прямо по адресам обращаться. )

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 11:44:29 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 794
Откуда: Ижевск
Рейтинг сообщения: 0
Всем здравствуйте! Дошли наконец снова руки до этих светодиодов ) Написал на тини13 программку, управляет 6 светодиодами. Успешно крутится алгоритм непрерывного спектра.

Дальше хотел сделать эффект кометы таким алгоритмом

unsigned char colors[12] = {0, 0, 0, 0, 0, 0, 20, 40, 60, 80, 120, 150}; // ну пусть будет такая яркость, пофиг, не суть, все RGB каналы будут одни и те же, цвет белый

// Тут двигаю все элементы массива вправо
tmp = colors [12];
for (k = 10; k <=0; k--) {
colors[k+1] = colors[k];
}
colors[0] = k;

// Теперь вызываю функцию вывода на диоды
set_color (colors[0], colors[0], colors[0]);
.
.
.
set_color(colors[5], colors[5], colors[5]);
delay_us (100); // Сброс, чтобы светодиоды зажглись

Ну а собственно дальше происходит какая то фигня ) Иногда комета пробегает, только зажигаясь рандомными цветами, иногда застревает или мерцает...

Может тини вообще не способна на такое? Хотя алгоритм непрерывного спектра спокойно крутится без единого глюка.

Или может вызов элемента массива занимает какое то время и рушит NOPы? Подскажите пожалуйста, ибо с программированием все довольно слабо ( Среда Coldevision, хотелось бы без сторонних библиотек, ибо цели 1) Разобраться 2) Подтянуть программирование
---

Если алгоритм сдвига массива вправо заменить на алгоритм непрерывного спектра, где просто использованы 3 переменные типа Unsigned char, то все работает, цвета плавно, ровно и корректно меняются. Прерывания не используется, в функции set_color тупо nop nop nop, переключить порт, nop nop... и т.д. Алгоритм непрерывного спектра уверенно работает на 20 светодиодах. Больше к сожалению у меня нету )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 13:07:41 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 243
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2471
Откуда: KMV
Рейтинг сообщения: 0
Я управлять этими светодиодами не пробовал, но вот тут у Вас как-то нелогично...
Kotto писал(а):
for (k = 10; k <=0; k--)

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 13:15:05 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 794
Откуда: Ижевск
Рейтинг сообщения: 0
А что вам кажется не логичным? Может конечно ошибка есть, но я как думаю...

tmp = colors [12]; // сохраняем последний элемент
for (k = 10; k <=0; k--) {
colors[k+1] = colors[k];
}
colors[0] = k; // последний элемент помещаем на место первого.

Всего у нас в массиве 0..11 элементов, 12 штук. Берем элемент 10 (k), помещаем его в следующую ячейку, k+1 (11), и так далее, весь массив у нас сдвигается по кругу вправо.

Если я где ошибаюсь, подскажите более точно, а то не понятно (


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 15:11:54 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 243
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2471
Откуда: KMV
Рейтинг сообщения: 0
Kotto писал(а):
А что вам кажется не логичным?

Kotto писал(а):
for (k = 10; k <=0; k--)

Ну расскажу, как вижу...
Итак, присваиваете переменной k значение 10. Далее, проверяете это значение на условие меньше или равно нулю. Естественно 10 больше нуля, можно вычитать. Только вот какой тип переменной k? может ли его значение быть отрицательным? Почему не просто k !=0?
PS, я не программист, если что. Но я всегда стараюсь уходить от декремента в циклах. Тем более в вашем случае и с инкрементом можно было двигать массив вправо, написав colors[11-k] = colors[10-k];

Просто если дело не в задержках, к которым, как я читал, WS2812B критична, что даже код на ассемблере многие применяют, то проблема, как мне видится, именно в типе переменной k

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 20:38:50 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 794
Откуда: Ижевск
Рейтинг сообщения: 0
Да, вы правы :facepalm: :facepalm: В целом заработало, но все равно подглюкивает, видимо разваливаются таймеры на нопах (


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пт ноя 15, 2019 15:48:08 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 828
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Если вам не обязательно делать гирлянду ногодрыгом и на тиньке, то давно открыт код на таймере с DMA на STM32F051.
Повторяйте, я вышлю прошивку для 10 эффектов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Сб ноя 16, 2019 21:25:19 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 794
Откуда: Ижевск
Рейтинг сообщения: 0
Да я просто хочу сделать подсветку, использовать что то мощнее это как уничтожать тараканов ядерной бомбой мне кажется. Вот и стараюсь на тини13 или подобном восьминогом камне )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пн ноя 18, 2019 10:36:58 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 828
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Тогда вам не нужно постоянно слать данные. Достаточно одного раза, и гирлянда светится до выключения питания :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пн ноя 18, 2019 17:09:04 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 794
Откуда: Ижевск
Рейтинг сообщения: 0
Как раз таки нужно. Хочется какой нибудь анимации по интереснее. Ну да ладно, пока этот вопрос отложил, потом снова вернусь к нему, буду экспериментировать. Пока предполагаю что при обращении к массиву данных теряется время и идет развал времени посылки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Ср дек 11, 2019 01:25:12 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 223
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1352
Рейтинг сообщения: 0
Как-то так. Обратите внимание PIC-у нужно 10МГц. Те он должен работать от кварца. На его стандартных 4МГц сформировать такты для WS-ов невозможно в принципе. Если нужен будет код для АТтини13 - могу выложить. Код на Бейсике. Вся фишка в том, что у ПИКа почти нет свободной оперативки.


Вложения:
PIC12F508_WS2812.zip [1.1 KiB]
Скачиваний: 235
PIC12F508_WS2812.hex [2.46 KiB]
Скачиваний: 217
PIC12F508_WS2812.JPG [142.54 KiB]
Скачиваний: 281
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Ср дек 11, 2019 08:37:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Kotto писал(а):
unsigned char colors[12] = {0, 0, 0, 0, 0, 0, 20, 40, 60, 80, 120, 150}; // ну пусть будет такая яркость, пофиг, не суть, все RGB каналы будут одни и те же, цвет белый
мой опыт показал, что при цвете RGB=0x010000 светодиод уже светится весьма заметно, меньше яркость сделать невозможно. поэтоу для "кометы" самое простое, это удваивать яркость: {0,1,2,4,8,16,32,64,128,255}. в принципе, в динамике на галз разницы в яркости свыше 64 уже не заметно - сливаются.

Добавлено after 3 minutes 53 seconds:
Kotto писал(а):
Хочется какой нибудь анимации по интереснее. Ну да ладно, пока этот вопрос отложил, потом снова вернусь к нему, буду экспериментировать. Пока предполагаю что при обращении к массиву данных теряется время и идет развал времени посылки.
какой посылки?! алгоритм у вас должен быть такой:
1. подготовили данные
2. выплюнули их в ленту светодиодов
3. перешли к п.1
во время п.2 никаких других действий не осуществляется, кроме как работа с времянкой, а во время п.1 нет никакого взаимодействия с лентой. как у вас может что-то разваливаться?!

если вас не ограничивает именно attiny13, томожете посмотреть в сторону моего проекта: https://radiokot.ru/forum/viewtopic.php ... 5#p3745305

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 11, 2021 07:16:29 
Первый раз сказал Мяу!

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Ср сен 10, 2014 13:07:22
Сообщений: 32
Откуда: Свердловская область, Ивдель
Рейтинг сообщения: 0
Есть у кого WS2811(в виде 50шт диаметром 12мм гирлянды) + T1000s? Как работает (не работает)? Хочу заказать, но что то неясно - будет работать или нет.

Работает 500 штук. Цвет RGB. Это путем проб. Иначе цвета не сходятся. Создаю фильм их гифок или футажей в ProShow и потом захватываю прогой Led Edit 2014/ Все прекрасно работает.

_________________
Лужу, паяю, самоделки собираю.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 179 ]     ... , , , , 9

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 26


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y