ARDUINO Цветомузыка на Arduino. Обсуждение проекта

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар

@Alekandron,
Здрасте.
В моей прошивке на "перлин эфектах" реализован подобный функционал, можно там посмотреть как.
Если вкратце: таймер через N-секунд переключает режим в "подсветку", а каждое "шевеление" на входе ардуины обнуляет таймер и переключает режим на "светомузыку".

Были планы добавить эту функцию ко всем эффектам, но проект в силу жизненных обстоятельств заброшен в долгий ящик, за что прошу прощения у всего сообщества и уже даже боюсь обещать когда смогу вернуться с обновлениями...
 
  • Лойс +1
Реакции: Alekandron

novvel

★★★✩✩✩✩
29 Сен 2018
568
192

@Alekandron,


Были планы добавить эту функцию ко всем эффектам, но проект в силу жизненных обстоятельств заброшен в долгий ящик, за что прошу прощения у всего сообщества и уже даже боюсь обещать когда смогу вернуться с обновлениями...
Есть вопрос: а 8 (который в бета был в последней обнове - бегущие огоньки) режим задуман так, что он как бы всплесками по 5-7 секунд работает или это очередной баг?
 

ATEMY

✩✩✩✩✩✩✩
1 Дек 2020
24
0
Мужики, всем привет!
Как добавить другие цвета для не горящих светодиодов помимо тех, что в списке?
И как настроить плавность в режиме 32 частот? Пробовал Менять LIGHT_SMOOTH и на 0.5, и на 5, разницы особой не увидел. К примеру 1-2 режим работает плавно, на мозги не давит. А вот 9й мне больше всех нравится, но раздражает мозг излишним мельканием.
C++:
// ----- режим анализатора спектра
byte HUE_START = 0;
byte HUE_STEP = 5;
#define LIGHT_SMOOTH 1

/*
  Цвета для HSV
  HUE_RED
  HUE_ORANGE
  HUE_YELLOW
  HUE_GREEN
  HUE_AQUA
  HUE_BLUE
  HUE_PURPLE
  HUE_PINK
*/
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Как добавить другие цвета для не горящих светодиодов помимо тех, что в списке?
Я подозреваю что ни как, в другом проекте пробовал из библиотеки выдрать цвета - не заработало, только вот этот список и работает.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
Мужики, всем привет!
Как добавить другие цвета для не горящих светодиодов помимо тех, что в списке?
Цифрой от 1 до 255

/* Цвета для HSV
HUE_RED = 0
HUE_ORANGE = 32
HUE_YELLOW = 64
HUE_GREEN = 96
HUE_AQUA = 128
HUE_BLUE = 160
HUE_PURPLE = 192
HUE_PINK = 224 */
 

ATEMY

✩✩✩✩✩✩✩
1 Дек 2020
24
0
Цифрой от 1 до 255

/* Цвета для HSV
HUE_RED = 0
HUE_ORANGE = 32
HUE_YELLOW = 64
HUE_GREEN = 96
HUE_AQUA = 128
HUE_BLUE = 160
HUE_PURPLE = 192
HUE_PINK = 224 */
Ну это разложение по радуге. А насыщенность ? Я хочу белый. Это любой цвет обесцветить нужно же
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Я тоже пытался, не получается. А насчёт плавности?
Плавность где то в настройках была, она откомментирована там даже вроде бы. Я просто уже не юзаю стандртную прошивку, стоит от сленка, хоть есть баги, но она больше функционала имеет.
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
А документацию к библиотеке FastLED почитать?
Полный HSV цвет любого пикселя задается как
setHSV(sHue, SATURATION, BRIGHTNESS);
а как это написать в кусок кода допустим?
C++:
// цвета высоты полос спектра. Длины полос задаются примерно в строке 95 (теперь в 14-17)
#define COLOR1 HUE_GREEN
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
в этот никак.
Ищите в коде, где этот COLOR1 используется и переписывайте вызовы цвета в нужный Вам формат
для тупых можно? Я имею ввиду как написать, что бы цвет этот в код вкорячить. Допустим я знаю где используется это, как задать другой цвет отличный от стандартного набора?
C++:
if (posLevel > 0) {
        for (int j = 0; j < posLevel; j++) {                 // столбцы
          uint32_t color;
          if (j < LEV1) color = COLOR1;           //5
          else if (j < LEV2) color = COLOR2;      //10
          else if (j < LEV3) color = COLOR3;      //13
          else if (j < HEIGHT-1) color = COLOR4;     //15
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,064
912
в приципе, можно прямо в виде макроса писать
то есть вместо
C++:
#define COLOR1 HUE_GREEN
пишите так
C++:
#define MY_COLOR1 CHSV(133, 255, 155)
И потом используете этот новый цвет как любой другой
только имейте в виду, что в этом макросе в качестве парметра можно указывать только числа или другие макросы, компилируемые переменные нельзя
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
в приципе, можно прямо в виде макроса писать
то есть вместо
C++:
#define COLOR1 HUE_GREEN
пишите так
C++:
#define MY_COLOR1 CHSV(133, 255, 155)
И потом используете этот новый цвет как любой другой
только имейте в виду, что в этом макросе в качестве парметра можно указывать только числа или другие макросы, компилируемые переменные нельзя
пробовал, не работает так оно, ошибка при компиляции. типа не удается конвертировать бла бла
cannot convert 'CHSV' to 'uint32_t {aka long unsigned int}' in assignment
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
если честно, я в код цветомузыки не заглядывал. Зачем там цвета в uint32 хранятся?
Но если оно так хочет - дайте ей uint32
C++:
#define MY_COLOR1 (uint32_t)CHSV(133, 255, 155)
это не код цветомузыки, это код на ленте от анализатора, но суть, что цвета в ней не удается сменить ни на что кроме списка того, как и человеку выше в коде ЦМУ)
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
что, вариант выше не сработал?
А весь код анализатора где выложен - гляну, как это "никто не может сменить" ? :)
Код есть в основной теме, но я его допилил по советам из комментариев, что бы удобнее было настраивать. Вот он: там вначале закомментированы все цвета из библиотеки, и они все дают белый цвет)) Я просто не понимаю как работать с цветами этими в коде, кроме HTML не было опыта в программировании. Точнее как объявить эти цвета в нужном мне месте. Допиленный скетч:
 

Вложения

bort707

★★★★★★✩
21 Сен 2020
3,064
912
слушайте, если у вас цвета заданы в формате RGB - строчки 8-11:
C++:
#define COLOR1 CRGB::Green
#define COLOR2 CRGB::Yellow
#define COLOR3 CRGB::Orange
#define COLOR4 CRGB::Red
то какого фига вы мне голову CHSV морочите? :)
Если у вас есть опыт в HTML - вам наверно проще будет задавать RGB цвета в виде HEX кодов, вот так:
C++:
#define COLOR1 0xFF44DD
 
  • Лойс +1
Реакции: Diman и novvel

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
слушайте, если у вас цвета заданы в формате RGB - строчки 8-11:
C++:
#define COLOR1 CRGB::Green
#define COLOR2 CRGB::Yellow
#define COLOR3 CRGB::Orange
#define COLOR4 CRGB::Red
то какого фига вы мне голову CHSV морочите? :)
Если у вас есть опыт в HTML - вам наверно проще будет задавать RGB цвета в виде HEX кодов, вот так:
C++:
#define COLOR1 0xFF44DD
Я тоже уже подумал, что в ргб наверное можно попробовать. Попробовал - вроде компилится. Я почему то не подумал сразу об этом, сейчас на вики полез и нашел что можно задать цвета так, проблема что подобрать цвет гораздо сложнее. Спасибо за наводку и активацию мозгов)) Наконец-то оранжевый сделаю оранжевым))
 

bort707

★★★★★★✩
21 Сен 2020
3,064
912
проблема что подобрать цвет гораздо сложнее.
В любом более-менее продвинутом графредакторе есть менюшка цветов - выбираете мышкой цвет на палитре, а оно вам пишет HEX код для RGB

Кстати, для оранжевого попробуйте вот эти цифры - R=255, G=69, B=0
Делал человеку поворотники на авто - хороший оранжевый цвет получался
 
  • Лойс +1
Реакции: novvel