Поделитесь пожалуйста кодом ws2812b

sarstab

✩✩✩✩✩✩✩
11 Дек 2018
8
0
Добрый вечер ,поделитесь пожалуйста кусочком кода .Как на одной светодиодной ленте ws2812b одновременно запустить 3 разных эффекта: мне нужно что бы на ленте с 0 до 40 светодиода загоралось синим цветом и хаотично увеличивалась и уменьшалась яркость синих диодов (полы),с 40 до 100 диода загорались хаотично разноцветные вспышки (стена),с 100 до 150 диода просто горело только белым цветом (потолок).
 

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,132
412
Москва
wan-derer.ru
@sarstab, создаёшь в памяти виртуальный "экран", двумя алгоритмами задаёшь динамику двух зон (третья просто горит белым). Потом всю композицию заталкиваешь в ленту.
 

sarstab

✩✩✩✩✩✩✩
11 Дек 2018
8
0
был бы вам признателен если вы показали кусочек кода.я начинающий,пытаюсь по крупицам собрать коды ,потом совместить их и таким образом пытаюсь учится)))и пытаюсь делать свои какие то проекты,и этот код тоже часть одного проекта,что бы сделать один эффект на всю ленту я могу ,а вот что бы 3 эффекта на одной ленте не могу)))хотелось бы пример )))
 

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,132
412
Москва
wan-derer.ru
@sarstab, Ты правда думаешь что кто-то сидит и зажимает готовый код, который полностью соответствует твоей задаче?
 

sarstab

✩✩✩✩✩✩✩
11 Дек 2018
8
0
нет друг мой мне полностью не надо, пример что б понять как туда вставить 3 эффекта,код с эффектами тут скачал вставляю как у алекса в уроке когда с 0 до 1 трети и потом 1 трети до 2 трети и не канает так)))получается что 1 эффект как бы налазиет на ту часть где не должен быть
 

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,132
412
Москва
wan-derer.ru
@sarstab, В программировании копи-паста не работает. Ты должен разобраться с тем как работает библиотека, как "заполняется" лента и на основе этого знания разработать алгоритм под свою задачу. Другие проекты могут использоваться как примеры, но прямое копирование кусков не прокатит.
Попытка исправления чужих и непростых проектов - это плохой путь для обучения. Ни задачу не выполнишь, ни научишься ничему.
 

sarstab

✩✩✩✩✩✩✩
11 Дек 2018
8
0
согласен так я и пытаюсь на основе примеров))Ну конечно не как профи))с делэями но работает ,вот учусь как убрать их,как обнулять счетчик для милис?
пока вопрос .что бы до конца понять надо все прочитать, а времени просто столько нету,дом, семья ,работа))я родился в ссср тогда даже компов небыло и щас позгнать мне сложновато,но пытаюсь,лучше это хобби чем бухать как большинство)))
 

sarstab

✩✩✩✩✩✩✩
11 Дек 2018
8
0
у меня получилось несколько проектов маленьких но приятно для меня,вам гуру программирования это смешно ,а я разуваюсь со светом)))(сделал подсветку плинтуса с датчиком движения мосфет транзистором что бы плавненько включался и выключался)
 

sarstab

✩✩✩✩✩✩✩
11 Дек 2018
8
0
согласен,ну можно и по другому :общение и помощь других ,в конце концов форум я думал для этого и есть что бы помочь другим разобраться и уж если ты силен и у тебя есть время подкинуть кусочек кода и объяснить по чему именно так а не по другому.Но оказалось что все всё умеют ,но просто говорят г твой код надо все писать заново вот учи все с начало и все тут
 

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,132
412
Москва
wan-derer.ru
@sarstab, Чтобы его подкинуть, его надо разработать. А кто будет этим заниматься? Тот, кому надо, не?
"Учи всё сначала!" - да, именно так это и работает.
 

flashguy

✩✩✩✩✩✩✩
5 Ноя 2018
28
2
т.е. никто не поделиться кусочком кода
sarstab просто ни у кого нет такого кусочка. Вот статья с кучей эффектов, там есть и интересующие тебя https://alexgyver.ru/ws2812b-fx/ тебе только нужно будет выбрать три нужных и в коде этих эффектов указать их отображение не от 0 до max а от x1 до y1, для каждого эффекта свой.
 

EandV

★★★✩✩✩✩
4 Авг 2018
288
167
т.е. никто не поделиться кусочком кода
Держи

C++:
#define LED_COUNT 360
#include "FastLED.h"
#define PIN 13
CRGB leds[LED_COUNT];
byte counter;

void setup() {
  FastLED.addLeds<WS2811, PIN, GRB>(leds, LED_COUNT).setCorrection( TypicalLEDStrip );
  FastLED.setBrightness(250);
  pinMode(13, OUTPUT);

}
void loop() {
  
   // Радуга (0-40 светодиод)
  for (int i = 0; i < 40; i++ ) {         // от 0 до первой трети
    leds[i] = CHSV(counter + i * 2, 255, 255);  // HSV. Увеличивать HUE (цвет)
    // умножение i уменьшает шаг радуги
  }
  counter++;        // counter меняется от 0 до 255 (тип данных byte)
  FastLED.show();
  delay(5);         // скорость движения радуги


// Конфети (произвольно загорающиеся огоньки разного цвета (41-100 светодиод)
int idex = random(41, 100);
  int ihue = random(0, 255);
  leds[idex] = CHSV(ihue, 255, 255);
  LEDS.show();
  delay(10);

//Лента принимает белый цвет (101-150 светодиод)

    for (int i = 101 ; i < 150; i++ ) {
    
leds[i] = CRGB(255,255, 255);
    }
    LEDS.show();
    delay(2000);

}// void loop()
 
  • Лойс +1
Реакции: Я Я