Выбор действий одной кнопкой

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Пробую, после миганий  - горит вся линейка! Должна тухнуть

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

vidro_boltiv пишет:

Пробую, после миганий  - горит вся линейка! Должна тухнуть

параметр 1090 поменяйте на 950, должно помочь.

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

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Не то ))), первые пара циклов норм работает, тухнет, потом пара циклов светится, потом опять по кругу

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

параметр 1090 - пенял на 950, 953, 955, 980, 1100, 1110, - ничего нужного результата не дало

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Должно работать так как Вам надо


void mode_6_loop() {
  Serial.println("leds_66");  // Для отладки
  // Змінні для Режима-6;
  byte red = 255;
  byte green = 255;
  byte blue = 255;
  int strobe_count = 10;

  static uint32_t past = 0;
  static bool j = 1;
  static bool flag = 0;

  if (j && millis() - past > 1000) {

    j = !j;
  }

  if (!j) {
    static uint32_t past1 = 0;
    static bool  j1 = 1;
    static bool flag = 0;
    static int mig = 0;

    if (millis() - past1 > 100) { // полупериод пакета 0,1сек
      past1 = millis();
      ++mig;
      j1 = !j1;
      flag = j1;
    }

    if (!j1 && !flag) {
      for (int j = 0; j < 10; j++) {
        for (int i = 0; i < 144; i++ ) {
          pixels.setPixelColor(i, pixels.Color(red, green, blue));
          flag = !flag;
        }
      }
    }

    if (j1 && flag) {
      for (int i = 0; i < 144; i++ ) {
        pixels.setPixelColor(i, pixels.Color(0, 0, 0));
        flag = !flag;
      }
      if (mig == 10) {
        mig = 0;
        j = 1;
        past = millis();
      }

    }
    pixels.show();
  }

}

 

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Премного благодарен. ЗАРАБОТАЛО!

 

Гляньте режим-8, НЕ реагирует на кнопку.

Часть светодиодов (20) бегают влевую-правую сторону.

void mode_8_loop() { 
  Serial.println("leds_88");  // Для отладки
  // Змінні для Режима-8;  
  byte red = 0; 
  byte green = 0; 
  byte blue = 255; 
  int pixel_size = 20;

      for(int i = 0; i < max_led - pixel_size - 2; i++) {
        for(int i = 0; i < max_led; i++ ) {
          pixels.setPixelColor(i, pixels.Color(0, 0, 0));
        }
        pixels.setPixelColor(i, pixels.Color(red, green, blue));
        pixels.show();
        
        
            for(int k = 1; k <= pixel_size; k++) {
              pixels.setPixelColor(i+k, pixels.Color(red, green, blue));
            }
            pixels.setPixelColor(i + pixel_size + 1, pixels.Color(red, green, blue));
            pixels.show();
            delay(1);
      
  }

      for(int i = max_led - pixel_size - 2; i > 0; i--) {
        for(int i = 0; i < max_led; i++ ) {
          pixels.setPixelColor(i, pixels.Color(0, 0, 0));
        }
        pixels.setPixelColor(i, pixels.Color(red, green, blue));
        pixels.show();

            for(int k = 1; k <= pixel_size; k++) {
              pixels.setPixelColor(i+k, pixels.Color(red, green, blue));
            }
            pixels.setPixelColor(i + pixel_size + 1, pixels.Color(red, green, blue));
            pixels.show();
            delay(1);
  
  }
  
}

 

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Также, нужно  изменять скорость движения светодиодов

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Еще раз большое спасибо откликнувшихся на помощь новичку! 

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Если кнопка не в прерывании то до окончания цыкла, а в Вашем случае функции 8го режима, проверить ее нет возможности, или я не знаю. По поводу скорости, если поменять делай - скорость меняется - то  в делай поставить переменную и менять(все равно на кнопку не реагирует) А если кнопку поставить на прерывание - делай сменить на милис() и ввести проверку кнопки.

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Нельзя ль в циклах проверянь не нажата ли кнопка, если нажата то выход из подпрограммы??

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Если на кнопку ставить прерывание, то придется весь код перебирать?

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Можно если вместо for поставить switch (myVar){case 0:и т.д., догда переписывать надо еще больше. А на прерывании поставить аппаратный антидребезг (конденсатор).

 
vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Нельзя ль в циклах проверянь не нажата ли кнопка, если нажата то выход из подпрограммы??

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

vidro_boltiv пишет:

Нельзя ль в циклах проверянь не нажата ли кнопка, если нажата то выход из подпрограммы??

я запретил.

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Запретили что?? Прерывания??

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

vidro_boltiv пишет:

Запретили что?? Прерывания??

 

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

ЕвгенийП пишет:

TTIIMMAA пишет:

Читаю форум, и частая фраза которую я встречаю от знающих  "Я запретил" "Я запрещаю"

Невнимательно читаете. Эта фраза исходит не "от знающих", а от одного знающего. Это фирменная фраза одного человека.

 

Непонятно что ВЫ хотели сказать. Не все люди рождаются вундеркиндами. Насколько видно ВЫ человек умный и абразованный, и не только.... ВЫ ставите себя выше всех )) Извините

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

vidro_boltiv пишет:

Непонятно что ВЫ хотели сказать.

ок, рептилоид - читаем дальше 

Чувство юмора — Википедия

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

ВЫ уж, извиняйте, тема создана не для обсуждения учасников!

Не хотите помочь - пожалуйста не межайте ))), если хотите - помогите ))). Буду благодарен.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

vidro_boltiv пишет:

ВЫ уж, извиняйте, тема создана не для обсуждения учасников!

Не хотите помочь - пожалуйста не межайте ))), если хотите - помогите ))). Буду благодарен.

ок. а, эта тема мной для кого создана?

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Читал, но видимо мозгов у меня мало, применить в моем проэкте.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

vidro_boltiv пишет:

Читал, но видимо мозгов у меня мало, применить в моем проэкте.

ок. у тебя ни мозгов, ни чюйства юмора, а претензии ко мне.

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

К ВАМ притензий - никаких ))) Чувство юмора тоже есть! Но ни здесь. (Не в этой теме) 

Как здесь вообще к кому-то можно предьявлять притензии, можна только СПАСИБО сказать учасника, что соглашаются помочь.

Ведь никто некому ничего необязан.

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

vidro_boltiv пишет:

Как здесь вообще к кому-то можно предьявлять притензии, можна только СПАСИБО сказать учасника, что соглашаются помочь.

Ну вообще есть разница - помочь новичку или сделать за него все. У вас - второй случай. Вы хоть чуть-чуть пробовали в коде разобраться? По-моему - нет.

Если хотите научится - начните с кода попроще. И главное - сами.

Если нет - нанимайте исполнителя. Паразитировать на сообществе некрасиво.

 

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

найдите исполнителя )). Начиться - былобы время .. (((, "24" часа на роботе.

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Готов к тухлым помидорам. Но есть ли желающие помочь? (Откоректировать, или написать робоччий код - за определенную суму денег.).

strarbit
Offline
Зарегистрирован: 12.06.2016

Ваша щедрость какая?

vidro_boltiv
vidro_boltiv аватар
Offline
Зарегистрирован: 18.10.2016

Какая нужна?? пишите на andrzej_net@ukr.net