Адресная светодиодная лента WS2812B

Пользовательские блоки для работы с контроллерами светодиодных ламп и освещением.
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
FlintFD
Рядовой
Сообщения: 41
Зарегистрирован: 28.02.2017{, 20:10}
Репутация: 7

Адресная светодиодная лента WS2812B

#1

Сообщение FlintFD » 05.01.2018{, 16:17}

Просмотрел я как то видео пользователя Arduino Prom (огромное ему спасибо за его работу), был скачен (ещё на старом сайте) пользовательский блок под WS2812B. Заказана сама лента, всё пришло, поигрался, порадовался что всё работает и ненадолго забыл.
Настал тот момент, когда решил реализовать практически некий проект. Простенький, это элементарная подсветка, но чтоб можно было менять уровень освещения и цвет подсветки. Лента у меня на 60 светодиодов.
Казалось бы, всё просто и элементарно.
В итоге (постепенно) сформировались хотелки:
- цвет и яркость должны меняться на всех светодиодах одновременно
- возможность регулировки потенциометрами непосредственно руками
- возможность переключения уровня яркости физическими кнопками
- возможность управления лентой по блютус
Наверно это всё можно реализовать и на простой РГБ ленте (даже намного проще) но нет её у меня пока.

Начал собирать схему и накидывать проект. Поставил три потенциометра, покрутил, работают)))) Приколхозил экранчик для наглядности. начал собирать сам проект. Понадобилось установить аж 60 блоков светодиодов в проект, т.к. один блок отвечает за один светодиод... ну да ладно, но
программа стала безбожно тормозить уже на 20 блоках. Раскидал блоки по разным платам... но это уж совсем колхоз получается...
Но всё это сделал, отладил. Работает... но с некоторыми тормозами. Поставил кнопку на переключение режимов, но 10-20 светодиодах всё работает нормально, на всех 60-ти притормаживает.
Поставил модуль блютуса (через RemoteXY всё), и вот тут всё и перестало работать нормально.
переделал пользовательский блок сразу под все светодиоды, не помогло, в общем много чего перепробовал, не помогло, блютус постоянно отваливается, ничего не регулируется, без блютуса все 60 диодов притормаживает...
В итоге блок был переписан с нуля практически (остались только наименования входов))). В старом блоке была использована библиотека Adafruit_NeoPixel.h, в новом я использовал FastLED.h. В итоге всё стало работать без блютуса вообще махом, блютус перестал отваливаться и хоть и с некоторой задержкой но всё регулируется и работает.

Сам блок:
WS2812_full_F_(CODE).ubi
(1.84 МБ) 963 скачивания
Сам проект, с блютусом, кнопкой и экраном (естественно надо будет подправить адреса под себя) .

Evolution_pvp
Рядовой
Сообщения: 14
Зарегистрирован: 14.02.2018{, 00:41}
Репутация: 0

Адресная светодиодная лента WS2812B

#2

Сообщение Evolution_pvp » 15.02.2018{, 00:40}

Дружище это просто супер, хоть я и не проверял пока.
Сижу думаю что с кусочком ленты делать оставшийся от подсветки монитора (Ambilight), пришло в голову сделать настольный свет со всякими приколюхами, но блин с кодом разбираться библиотеку изучат это ппц времени надо, дай думаю загляну в готовые блоки мало ли, и тут бац такой подарок.
Респект тебе и уважуха.

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

Адресная светодиодная лента WS2812B

#3

Сообщение Mozgoklui » 30.10.2019{, 15:46}

FlintFD, уважаемый, а вас не затруднит переделать ваш блок под ESP8266? А то там с пинами неразбериха..
Точнее не с пинами, я там на стринг поменял. Ругается IDE компилятор:
СпойлерПоказать
In file included from C:\Users\Vintjara\AppData\Local\Temp\flprog\pr5\pr5.ino:3:0:

c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.006

# pragma message "FastLED version 3.001.006"

^

In file included from c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-master/led_sysdefs.h:27:0,

from c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-master/FastLED.h:44,

from C:\Users\Vintjara\AppData\Local\Temp\flprog\pr5\pr5.ino:3:

c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-master/platforms/esp/8266/led_sysdefs_esp8266.h:15:17: error: conflicting declaration 'typedef uint8_t boolean'

typedef uint8_t boolean;

^

In file included from sketch\pr5.ino.cpp:1:0:

c:\Program Files (x86)\FLProg\ideV3\portable\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/Arduino.h:191:14: error: 'boolean' has a previous declaration as 'typedef bool boolean'

typedef bool boolean;

^

In file included from c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-master/FastLED.h:68:0,

from C:\Users\Vintjara\AppData\Local\Temp\flprog\pr5\pr5.ino:3:

c:\Program Files (x86)\FLProg\ideV3\libraries\FastLED-master/fastspi.h:110:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output

# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"

^

Несколько библиотек найдено для "BlynkSimpleEsp8266.h"
Используется: c:\Program Files (x86)\FLProg\ideV3\portable\sketchbook\libraries\Blynk
Не используется: c:\Program Files (x86)\FLProg\ideV3\libraries\Blynk
Несколько библиотек найдено для "ArduinoOTA.h"
Используется: c:\Program Files (x86)\FLProg\ideV3\portable\packages\esp8266\hardware\esp8266\2.5.2\libraries\ArduinoOTA
Не используется: c:\Program Files (x86)\FLProg\ideV3\portable\sketchbook\libraries\ArduinoOTA
Не используется: c:\Program Files (x86)\FLProg\ideV3\libraries\ArduinoOTA
exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
Что это он хочет подскажите пожалуйста, а то я неумеющий...

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Адресная светодиодная лента WS2812B

#4

Сообщение aidar_i » 20.01.2020{, 18:58}

Mozgoklui писал(а):
30.10.2019{, 15:46}
Mozgoklui
Этот блок работает с ESP8266. Что Вы там поменяли на стринг. Он аналогичен моему блоку отсюда
Подключите ленту к GPIO 2 (D4)

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

Адресная светодиодная лента WS2812B

#5

Сообщение Mozgoklui » 20.01.2020{, 20:22}

aidar_i, это дела минувших дней, уже не помню что я там менял)) уже всё работает благодаря вашим блокам :smile9:

Ответить

Вернуться в «Светодиоды, освещение»