ARDUINO Крутая гирлянда на ёлку. Обсуждение проекта

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Ну с кодом то угадать каждый может...
))

Да вот как-то стыдно показывать, то что я нагородил (

Может это я так круто оптимизировал код, что он летать начал? ))

Ну а если серьёзно, то вообще в этой прошивке есть такая возможность?
Ускорять эффекты или замедлять?

Или в самой FastLED?

Я имею в виду это вообще стандартная ситуация по ускорению эффектов?
 

Сотнег

★★★★★★★
15 Янв 2020
4,390
1,504
@Shuster, вроде бы, там у каждого эффекта зафиксирована собственная задержка.
Ищите thisdelay =
на вкладке main
 
  • Лойс +1
Реакции: Shuster

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
@Shuster, вроде бы, там у каждого эффекта зафиксирована собственная задержка.
Ищите thisdelay =
на вкладке main
В этом то и дело, ни эффекты, ни switch переключения я не менял.
thisdelay обновляется перед каждым режимом в switch.

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

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
На примере нулевого эффекта blendwave()

Здесь скорость вообще в функцию не передаётся. Ни как аргумент, ни глобальными переменными.
Код такой же точно как и в предыдущей версии, но скорость заливки разная.
Наверное где-то можно заставить быстрее\медленнее выполнять заливку саму FastLED. Вот только где (

blendwave():
#ifndef BLENDWARE_H
#define BLENDWARE_H

void blendwave()
{
  CRGB clr1;
  CRGB clr2;
  uint8_t speed;
  uint8_t loc1;

  if (KolLed >= 10)
  {

    speed = beatsin8(6, 0, 255);

    clr1 = blend(CHSV(beatsin8(3, 0, 255), 255, 255), CHSV(beatsin8(4, 0, 255), 255, 255), speed);
    clr2 = blend(CHSV(beatsin8(4, 0, 255), 255, 255), CHSV(beatsin8(3, 0, 255), 255, 255), speed);

#if MAX_LEDS < 255
    loc1 = beatsin8(10, 0, KolLed - 1);
#else
    loc1 = beatsin16(10, 0, KolLed - 1);
#endif

    fill_gradient_RGB(leds, 0, clr2, loc1, clr1);
    fill_gradient_RGB(leds, loc1, clr2, KolLed - 1, clr1);
  }
} // blendwave()

#endif
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,266
1,303
Москва
Это вряд ли. если скорость рассчитать как 25 кадров в секунду. То не важно залили вы за 0.01 сек, или за 0.02, задержка между кадрами будет одна и та же. Визуально не заметно разницы
 
  • Лойс +1
Реакции: Shuster

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
На примере нулевого эффекта blendwave()
Смотрите где он вызывается, там ваши задержки живут :), у Гайвера картинообразный костыль по всем прошивкам.

Это вряд ли. если скорость рассчитать как 25 кадров в секунду. То не важно залили вы за 0.01 сек, или за 0.02, задержка между кадрами будет одна и та же. Визуально не заметно разницы
Ну так и надо делать, только такой код сложнее чем задержек натыкать :)
 
  • Лойс +1
Реакции: Shuster

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Поиск по FastLED.Show() может помочь.
Там 10мс задержка.
Да, так получается влиять на скорость, но если оставить как есть 10мс то быстро, а если добавить до 100, то тормознуто.

Это вряд ли. если скорость рассчитать как 25 кадров в секунду. То не важно залили вы за 0.01 сек, или за 0.02, задержка между кадрами будет одна и та же. Визуально не заметно разницы
Ну тогда остаётся только оптимизация кода ))
 

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Всё оказалось намного проще.

C++:
#define CHANGE_TIME 7  // Время в секундах, за которое произойдет плавная смена эффектов
Полез по коммитам, оказалось что изменил этот параметр ещё вчера утром на 2, но сразу не обратил внимание на изменения.
Для меня показалось логично, что плавная смена эффектов не должна влиять на скорость выполнения эффекта.
Но оказалось она влияет.
 
  • Лойс +1
  • Ахах! +1
Реакции: bim1405 и Lumenjer

VanUliK

✩✩✩✩✩✩✩
14 Сен 2021
5
2
подскажите, почему первый светодиод светится так, как ему захочется, и это не только в этом проекте?
 

Сотнег

★★★★★★★
15 Янв 2020
4,390
1,504
@VanUliK, потому что версия ядра в менеджере плат начиная с 3.0.0 и новее несовместима с библиотекой FastLED из проекта.
 

poty

★★★★★★✩
19 Фев 2020
3,237
942
Моя версия - первый диод - неисправен.
 

Vad

✩✩✩✩✩✩✩
10 Окт 2021
1
0
После загрузки лента светиться белым цветом пробовал 2вида ленты ws2112B,ws2111
 

Aelharon

✩✩✩✩✩✩✩
21 Мар 2020
4
0
Приветствую.
Нужна помощь.
Собрал герлянду на диодах с колпачками, всего 150 диодов.
При подаче питания, все загоряются красным и сразу тухнут, и всё, на кнопку не реагируют.
Ардуинку перепрошивал, заливал скетч для проверки, всё ок.
В прошивке менял количество диодов на 150, и мощность БП на 6000(блок питания на 8А).
Думал начало ленты с другой стороны, подал сигнал(питание не перепаевал) с другой стороны, эффекта нет.
Что можно сделать?
 

Вложения

Aelharon

✩✩✩✩✩✩✩
21 Мар 2020
4
0
@poty,
Скетч с гайда по работе с Ардуино для новичков, после прошивки диод должен мигать.
Фото герлянды выложил выше, на плате написано ws2811.
Может с этой герляндой резистор лишний, ведь резистор уже есть на плате с диодом.......
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,237
942
Попробуйте скетч для WS2811 залить какой-нибудь самый простой.
 

Aelharon

✩✩✩✩✩✩✩
21 Мар 2020
4
0
Вопрос решён.
С данной герляндой (диодами), резистор в схеме лишний, я его убрал и всё заработало, два дня боролся :).
 

Plotter

✩✩✩✩✩✩✩
9 Дек 2020
6
2
Ребят, подскажите, пожалуйста)
Поставил сенсорную кнопку вместо тактовой, мне кажется проблема в этом. По двойному клику резко гаснет, по тройному всё ок переключает. 1 точно работает. 4 так и не понял.
по поводу внедрения сенсорной кнопки для управления гирляндой, на кнопке есть перемычки, их нужно сконфигурировать.
При замыкании перемычки А, сигнал на выходе OUT инвертируется (что нам и нужно, ведь тактовая кнопка соединяет пин с землей), т.е. при касании пальцем рабочей области на выходе устанавливается низкий уровень сигнала. Перемычка В включает режим фиксации переключения модуля, т.е. чтобы переключить состояние сигнала на выходе OUT, необходимо повторно коснутся датчика.
Конденсатор настройки чувствительности можно выбирать в диапазоне от 0 до 50 пФ. Принцип здесь такой, — чем больше ёмкость этого конденсатора — тем меньше чувствительность. Кроме подстроечного конденсатора на чувствительность влияет размер чувствительной площадки (чем она больше, тем чувствительность выше). При желании можно подпаять внешнюю контактную площадку увеличенной площади (место для пайки отмечено на фотографии).
 

Вложения

  • Лойс +1
Реакции: shtrlz и Divin

ugra86

✩✩✩✩✩✩✩
28 Окт 2019
7
4
Собрал гирлянду на WS2812B - 5 метров (60 led/m)
Все работает на отлично, кроме первых 60 светодиодов. Они практически живут своей жизнью. Пайка, сборка, флюс... Все отпадает. Блок питания стоит от компьютера. Лента запитана с двух сторон.
Подскажите, в какую сторону копать? Неделю бьюсь... А воз и ныне там...
 

Plotter

✩✩✩✩✩✩✩
9 Дек 2020
6
2
@ugra86,резистор стоит по сигнальному проводу? 100-500 Ом
 

Plotter

✩✩✩✩✩✩✩
9 Дек 2020
6
2
Попробуй увеличить. А в чем заключается "живет своей жизнью"?