Режимы для светодиодной RGB Ленты

imnofear555
Offline
Зарегистрирован: 10.12.2019

Привет!
Я Новичок  и прошу Вашей помощи. 
нужно накидать пару эффектов свечения для rgb ленты (пульсация, плавное изменение яркости, и еще парочку). Почитал про циклы for и while в общих чертах понятно, НО мне нужно что бы цикл выполнялся постоянно, а во всех примерах эти два цикла находятся внутри loop. Мне такой Вариант не подходит( 

b707
Offline
Зарегистрирован: 26.05.2017

imnofear555 пишет:

мне нужно что бы цикл выполнялся постоянно, а во всех примерах эти два цикла находятся внутри loop. Мне такой Вариант не подходит( 

попробуйте изложить своими словами, чем, по Вашему, отличаются эти варианты. Если вы не в курсе - цикл loop() выполняется постоянно, а значит все, что в нем находится - тоже.

И еще - понимаете ли вы, что написали в платный раздел? - Тут помогают за деньги. Если хотите, могу вам запрограммировать ваши эффекты, опыт работы с адрессными лентами имеется.

Если вы просто хотели задать вопрос - переместите сообщение в другие разделы.

imnofear555
Offline
Зарегистрирован: 10.12.2019

Почему я не могу использовать цикл loop, да потому что что он слишком часто будет посылать Запрос на мой  Сервер Blynk. И сами разработчики не советуют помещать BLYNK_WRITE(V1) в цикл loop.  Ниже Код. 
 

 BLYNK_WRITE(V10) {
  switch (param.asInt()) {
    case 1: { // Пункт 1 
      analogWrite (pinR, LOW);
      analogWrite (pinG, LOW);
      analogWrite (pinR, random(50, 1023));
      analogWrite (pinG, random(50, 1023));
      Serial.println("Выбран кейс 1");
      break;

    }
    case 2: { // Пункт 2
         analogWrite (pinR, LOW);
         analogWrite (pinG, LOW);
         for (int asd = 0; asd < 1023; asd += 100) {
         Blynk.virtualWrite(V4, asd);
         analogWrite(pinR, asd);
         Serial.println(asd);
         Serial.println("Выбран кейс 2");
         delay(5);
        };
        for (int asd = 0; asd < 1023; asd += 100) {
         Blynk.virtualWrite(V2, asd);
         analogWrite(pinG, asd);
         Serial.println(asd);
         Serial.println("Выбран кейс 2");
         delay(5);
        };
        break;
    }
    
    case 3: { // Пункт 3
      analogWrite (pinR, LOW);
      analogWrite (pinG, LOW);
      Serial.println("Выбран кейс 3");
 
    break;
    }
   }
 }

То есть когда я Выбираю из перечня какой то эффект, мне нужно что бы он выполнялся бесконечно, а не как на данный момент во втором кейсе.
По поводу оплаты, все зависит как много попросят за данный код. B cветодиодная лента, не адресная, а обычная RGB/

b707
Offline
Зарегистрирован: 26.05.2017

Простите, но у вас в голове все перепуталось. Чтобы крутить эффект бесконечно, не трогая блинк - совершенно необязательно выносить его из ЛУП, главное вынести его из BLYNK_WRITE()

Уточните по эффектам - сами эффекты у вас уже есть или их надо придумывать? Что за лента, сколько диодов? Какой контроллер?

b707
Offline
Зарегистрирован: 26.05.2017

imnofear555 пишет:

 cветодиодная лента, не адресная, а обычная RGB/

и какие-же эффекты вы хотите запускать на "обычной RGB" ленте? Все примеры в инете - все эти  "пульсации", "бегущие огни", "радуга" - это все эффекты для адресной ленты.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

b707 пишет:

и какие-же эффекты вы хотите запускать на "обычной RGB" ленте? Все примеры в инете - все эти  "пульсации", "бегущие огни", "радуга" - это все эффекты для адресной ленты.

Ну ТС упоминал только "пульсация, плавное изменение яркости", а это все можно и на обычной RGB ленте сделать. ШИМ + Мосфет 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Пишите barmaley2m@yandex.ru 

Попробую помочь, если лента не адресная. 

imnofear555
Offline
Зарегистрирован: 10.12.2019

Именно это мне и нужно, но не могу добиться что бы цикл повторялся. Вот часть кода, 

case 2: { // выбран  Пункт 2
          analogWrite (pinR, LOW);
          analogWrite (pinG, LOW);
           for (int asd = 0; asd < 1023; asd += 102) {
            Blynk.virtualWrite(V4, asd);
            analogWrite(pinR, asd);
            Serial.println(asd);
            Serial.println("Выбран кейс 2");
            delay(10);
           };
          break;
          }

 

Araris
Offline
Зарегистрирован: 09.11.2012

Тема закрыта по причине переезда в "песочницу".