Страница 1 из 1

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

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

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

Сам блок:
WS2812_full_F_(CODE).ubi
Сам проект, с блютусом, кнопкой и экраном (естественно надо будет подправить адреса под себя) .
Адресная лента на FastLED библиотеке.flp

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

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

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

Добавлено: 30 окт 2019, 15:46
Mozgoklui
[ref]FlintFD[/ref], уважаемый, а вас не затруднит переделать ваш блок под ESP8266? А то там с пинами неразбериха..
Точнее не с пинами, я там на стринг поменял. Ругается IDE компилятор:
[spoiler]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).
[/spoiler]
Что это он хочет подскажите пожалуйста, а то я неумеющий...

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

Добавлено: 20 янв 2020, 18:58
aidar_i
Mozgoklui писал(а): 30 окт 2019, 15:46Mozgoklui
Этот блок работает с ESP8266. Что Вы там поменяли на стринг. Он аналогичен моему блоку отсюда
Подключите ленту к GPIO 2 (D4)

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

Добавлено: 20 янв 2020, 20:22
Mozgoklui
[ref]aidar_i[/ref], это дела минувших дней, уже не помню что я там менял)) уже всё работает благодаря вашим блокам :smile9: