Нужна помощь по редактированию скейча

ShamsutdinovT
Offline
Зарегистрирован: 16.01.2018

Всем привет, вобщем занялся проектом для фар, есть код, но мне нужно убрать кое какие функции в нем, а именно:

// цикл до трех - сигнал "перестроения" , при кратковременном включении мигает 3 раза

и

// если во время мигания поворотника получаем еще плюcовой сигнал, то обнуяем счетчик, чтобы поворотник мигал еще как минимум 3 раза




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

в программировании не силен, только начал изучать, буду благодарен за помощь

#include <Adafruit_NeoPixel.h>             // подключаем библиотеку
int count = 7; // количество диодов на одной фаре
Adafruit_NeoPixel strip = Adafruit_NeoPixel(count, 7, NEO_GRB + NEO_KHZ800); //Инициализируем первый поворотник на 7 цифровом выходе
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(count, 8, NEO_GRB + NEO_KHZ800);//Инициализируем второй поворотник на 8 цифровом выходе
void setup()
{
  pinMode(3, INPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
  strip.begin();
  strip.show();
  strip2.begin();
  strip2.show();
}
void loop()
{
  {
    if ((digitalRead(5) == HIGH) and (digitalRead(6) == HIGH))
    {
      //Режим аварийной сигнализации, если на 5 и 6 пин приходит плюс
      for (int k = 0; k < 3; k++)
      {
        // цикл до трех - сигнал "перестроения" , при кратковременном включении мигает 3 раза,
        for (int i = 0; i < count + 1; i++)
        {
          for (int j = 0; j < i; j++)
          {
            if ((digitalRead(5) == HIGH) and (digitalRead(6) == HIGH))
            {
              k = 0; // если во время мигания поворотника получаем еще плюcовой сигнал, то обнуяем счетчик, чтобы поворотник мигал еще как минимум 3 раза
            }
            strip.setPixelColor(j, strip.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip2.setPixelColor(j, strip2.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
          }
          delay(60);
          strip.show();
          strip2.show();
        }
        for (int i = 0; i < count + 3; i++)
        {
          for (int j = 0; j < i; j++)
          {
            // в этом цикле плавно тушим предыдущий светодиод, делаем его наполовину тусклее, чтобы движение было плавнее
            strip.setPixelColor(j - 2, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip.setPixelColor(j - 1, strip.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip.setPixelColor(j, strip.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip2.setPixelColor(j - 2, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip2.setPixelColor(j - 1, strip2.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip2.setPixelColor(j, strip2.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
          }
          delay(60);
          strip.show();
          strip2.show();
        }
      }
    }

    if (digitalRead(5) == LOW and digitalRead(6) == HIGH)
    {
      // включается один поворотник
      for (int k = 0; k < 3; k++)
      {
        // цикл до трех - сигнал "перестроения" , при кратковременном включении мигает 3 раза,
        for (int i = 0; i < count + 1; i++)
        {
          for (int j = 0; j < i; j++)
          {
            if ((digitalRead(5) == LOW) and (digitalRead(6) == HIGH))
            {
              k = 0;
            }
            strip.setPixelColor(j, strip.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
          }
          delay(60);
          strip.show();
        }
        for (int i = 0; i < count + 3; i++)
        {
          for (int j = 0; j < i; j++)
          {
            // в этом цикле плавно тушим предыдущий светодиод, делаем его наполовину тусклее, чтобы движение было плавнее
            strip.setPixelColor(j - 2, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip.setPixelColor(j - 1, strip.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip.setPixelColor(j, strip.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
          }
          delay(60);
          strip.show();
        }

      }
    }
    if (digitalRead(5) == HIGH and digitalRead(6) == LOW)
    { // включаем второй поворотник
      for (int k = 0; k < 3; k++)
      {
        // цикл до трех - сигнал "перестроения" , при кратковременном включении мигает 3 раза,
        for (int i = 0; i < count + 1; i++)
        {
          for (int j = 0; j < i; j++)
          {
            if ((digitalRead(5) == HIGH) and (digitalRead(6) == LOW))
            {
              k = 0;
            }
            strip2.setPixelColor(j, strip2.Color(255, 69, 0)); // R=255, G=0, B=0 — цвет светодиода
          }
          delay(60);
          strip2.show();
        }
        for (int i = 0; i < count + 3; i++)
        {
          for (int j = 0; j < i; j++)
          {
            // в этом цикле плавно тушим предыдущий светодиод, делаем его наполовину тусклее, чтобы движение было плавнее
            strip2.setPixelColor(j - 2, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip2.setPixelColor(j - 1, strip2.Color(63, 17, 0)); // R=255, G=0, B=0 — цвет светодиода
            strip2.setPixelColor(j, strip2.Color(127, 34, 0)); // R=255, G=0, B=0 — цвет светодиода
          }
          delay(60);
          strip2.show();
        }
      }
    }
    if (digitalRead(3) == HIGH)
    {
      // режим спецсигналов, если на 3 пин подаем плюс
      for (int j = 0; j < 16; j++)
      {
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(255, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(0, 0, 255)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(20);
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(20);
      }
      for (int j = 0; j < 16; j++)
      {
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(0, 0, 255)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(255, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(20);
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(20);
      }
    }
    if (digitalRead(4) == HIGH)
    {
      // Режим стробоскова, если на 4 пин подаем питание
      for (int j = 0; j < 24; j++)
      {
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(255, 255, 255)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(15);
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(15);
      }
      for (int j = 0; j < 24; j++)
      {
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(255, 255, 255)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(15);
        for (int i = 0; i < count; i++)
        {
          strip.setPixelColor(i, strip.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
          strip2.setPixelColor(i, strip2.Color(0, 0, 0)); // R=255, G=0, B=0 — цвет светодиода
        }
        strip.show();
        strip2.show();
        delay(15);
      }
    }
    if ( digitalRead(3) == LOW and digitalRead(5) == LOW and digitalRead(6) == LOW and digitalRead(9) == LOW)
    {
      for (int i = 0; i < count + 1; i++)
      {
        // Зажигаем ходовые огни, если нетниодного сигнала
        strip.setPixelColor(i, strip.Color(255, 255, 255));
        strip2.setPixelColor(i, strip2.Color(255, 255, 255));
      }
      strip.show();
      strip2.show();
    }
  }
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Насколько я могу судить, "скейч" стянут вот отсюда. Что мешает обратиться к автору?

А если уж Вы пришли сюда, за такой, как Вы выразились, "помощью", то её здесь оказывают в другом разделе на возмездной основе.

ShamsutdinovT
Offline
Зарегистрирован: 16.01.2018

именно оттуда)), но автор что то не отвечает