Доп.стоп сигнал для авто. Нужна помощь

seregaeshka
Offline
Зарегистрирован: 23.08.2017

Решил переделать доп. стопак на машине.

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

Страничка на драйве: https://www.drive2.ru/l/479934627574710567/ 

Есть некоторые проблеммы в программировании:

Есть кнопка которой можно переключать режим работы при этом после нажатия выбранный режим записывается в епром. При включении ардуино, считывается записаный в память номер режима и воспроизводится. Проблема в том что ардуино долго грузится и потключать концевик от педали тормоза к питанию контроллера будет не совсем правильно. 

Как я понимаю при включенном зажигании устройство должно загрузиться и постоянно работать а по нажатию на педаль тормоза воспроизводить часть кода. Вот собственно и сам вопрос: Не знаю как правильно прописать это все дело и на какой порт принимать сигнал от педали тормоза (аналоговый или цифровой)?

За помощь за ранее спасибо.

Схема подключения.  

собственно сам скетч

#include <EEPROM.h>


int led1 = 3;
int led2 = 9;
int led3 = 5;
int led4 = 6;

int address = 0;
byte value;



//int buttonPin = 2;
int val=EEPROM.read(0), stope=1;
long previousMillis = 0;
int buttonState = 0;
long interval = 300;



void setup() {
Serial.begin(9600); 
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);

digitalWrite(2, LOW);
digitalWrite(4, LOW);
attachInterrupt(0, buttonPin, CHANGE);
while(!Serial);

  }
 void one()
{
    while(stope==1) 
  { 
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  delay(300);

   
  Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();
                
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
              EEPROM.write(0, 2);

  }

void two()
{

    while(stope==1) 
  {
   
  digitalWrite(led3, HIGH);
  delay(300);
  digitalWrite(led1, HIGH);
  delay(300);

  digitalWrite(led4, HIGH);
    delay(300);
    digitalWrite(led2, HIGH);
  delay(300);

   
  Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();
                
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
              EEPROM.write(0, 3);


  }

  void one1()
{

    while(stope==1) 
  {
     
  digitalWrite(led1, HIGH);
    digitalWrite(led3, HIGH);
  digitalWrite(led2, LOW);
    digitalWrite(led4, LOW);
  delay(300);
  digitalWrite(led1, LOW);
    digitalWrite(led3, LOW);
  digitalWrite(led2, HIGH);
    digitalWrite(led4, HIGH);
  delay(300);

   
  Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();
                
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
              EEPROM.write(0, 4);
  }

 void lsnk()
{    
    while(stope==1)
  {
      digitalWrite(led3, HIGH);
             delay(800);
        digitalWrite(led1, HIGH);
        digitalWrite(led3, LOW);
             delay(800);
        digitalWrite(led4, HIGH);
        digitalWrite(led1, LOW);
             delay(800);

        digitalWrite(led2, HIGH);
        digitalWrite(led4, LOW);
             delay(800);
            digitalWrite(led2, LOW);


              if(Serial.available() > 0) stope = Serial.parseInt();

           Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println(); 
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW);
 EEPROM.write(0, 5);
  }


 void slsnk()
{
         
    while(stope==1)
  {
      digitalWrite(led3, HIGH);
             delay(40);
           digitalWrite(led3, LOW);
             delay(40);
           digitalWrite(led3, HIGH);
             delay(40);
           digitalWrite(led3, LOW);
             delay(40);
           digitalWrite(led3, HIGH);
             delay(40);
           digitalWrite(led3, LOW);
             delay(40);
           digitalWrite(led3, HIGH);
             delay(40);
           digitalWrite(led3, LOW);
             delay(140);


 digitalWrite(led1, HIGH);
             delay(40);
           digitalWrite(led1, LOW);
             delay(40);
           digitalWrite(led1, HIGH);
             delay(40);
           digitalWrite(led1, LOW);
             delay(40);
           digitalWrite(led1, HIGH);
             delay(40);
           digitalWrite(led1, LOW);
             delay(40);
           digitalWrite(led1, HIGH);
             delay(40);
           digitalWrite(led1, LOW);
             delay(140);
   
                        
             delay(40);
           digitalWrite(led4, LOW);
             delay(40);
           digitalWrite(led4, HIGH);
             delay(40);
           digitalWrite(led4, LOW);
             delay(40);
           digitalWrite(led4, HIGH);
             delay(40);
           digitalWrite(led4, LOW);
             delay(40);
           digitalWrite(led4, HIGH);
             delay(40);
           digitalWrite(led4, LOW);
             delay(140);

 
                      digitalWrite(led2, HIGH);
             delay(40);
           digitalWrite(led2, LOW);
             delay(40);
           digitalWrite(led2, HIGH);
             delay(40);
           digitalWrite(led2, LOW);
             delay(40);
           digitalWrite(led2, HIGH);
             delay(40);
           digitalWrite(led2, LOW);
             delay(40);
           digitalWrite(led2, HIGH);
             delay(40);
           digitalWrite(led2, LOW);
             delay(140);
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
              EEPROM.write(0, 6);
  }
 void sdtd()
{     
    while(stope==1)
  {
        digitalWrite(led3, HIGH);
             delay(800);
        digitalWrite(led1, HIGH);
        digitalWrite(led3, LOW);
             delay(800);
        digitalWrite(led4, HIGH);
        digitalWrite(led1, LOW);
             delay(800);

        digitalWrite(led2, HIGH);
        digitalWrite(led4, LOW);
             delay(800);
             
                    digitalWrite(led4, HIGH);
            digitalWrite(led2, LOW);
            delay(800);
        digitalWrite(led1, HIGH);
        digitalWrite(led4, LOW);
                    delay(800);
                        digitalWrite(led1, LOW);

              if(Serial.available() > 0) stope = Serial.parseInt();

           Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println(); 
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW);
 EEPROM.write(0, 7);
  }

  void long1()
{
         
    while(stope==1)
  {
       for(int i=0; i<=255; i++){analogWrite(led3, i);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led1, i);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led4, i); delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led2, i); delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led3, k); delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led1, k); delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led4, k); delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led2, k); delay(5);}
              if(Serial.available() > 0) stope = Serial.parseInt();

           Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println(); 
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW);
 EEPROM.write(0, 8);
  }

  void long2()
{
         
    while(stope==1)
  {
       for(int i=0; i<=255; i++){analogWrite(led3, i);delay(25);}
           for(int i=0; i<=255; i++){analogWrite(led1, i);delay(25);}
           for(int i=0; i<=255; i++){analogWrite(led4, i); delay(25);}
           for(int i=0; i<=255; i++){analogWrite(led2, i); delay(25);}

              if(Serial.available() > 0) stope = Serial.parseInt();

           Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println(); 
               if(Serial.available() > 0)  Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW);
 EEPROM.write(0, 1);
  }

void loop() {
 // считываем значение текущего байта EEPROM:
  value = EEPROM.read(0);
 
  Serial.print(0);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();
 
  // перемещаемся к следующему байту EEPROM:
  address = 0;
 
  // EEPROM содержит всего 512 байтов (с 0 по 511),
  // поэтому, добравшись до 512-ой позиции,
  // снова переходим к самому первому, т.е. к 0-ому байту:
  if (address == 5)
    address = 0;
   
  delay(500);

  
if(Serial.available() > 0) val = Serial.parseInt();
switch(val)
{
    case 1:stope=1; one();break;
      case 2:stope=1; two();break;
  case 3:stope=1; one1();break;
  case 4:stope=1; long1();break;
  case 5:stope=1; long2();break;
  case 6:stope=1; lsnk();break;
  case 7:stope=1; slsnk();break;
  case 8:stope=1; sdtd();break;
}
}

void buttonPin()
{
  static unsigned long millis_prev;
  if(millis()-1000 > millis_prev)
  { 
  stope=1;
  delay(50);
  val++;
    delay(50);
  stope=0;
  Serial.println(val);
    if(val==9) EEPROM.write(0, 1);
  }
  millis_prev = millis();        
} 

 

inspiritus
Offline
Зарегистрирован: 17.12.2012

я бы не стал экспериментировать со стопярями, чем их больше и чем быстрее и ярчк они все светят, то лучше, а вся остальная светомузыка до добра не доведет.

 

seregaeshka
Offline
Зарегистрирован: 23.08.2017

inspiritus пишет:

я бы не стал экспериментировать со стопярями, чем их больше и чем быстрее и ярчк они все светят, то лучше, а вся остальная светомузыка до добра не доведет.

Это дополнительный стоп сигнал... 

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

За слепящий мигающий стоп - хочется вынести стекло "горе-кулибину". Я спокойный, но не все же такие сдержанные.

Что за дурацкая тяга что-то приколхозить к своему авто? Не устраивает машина - купи другую...

seregaeshka
Offline
Зарегистрирован: 23.08.2017

b707 пишет:

За слепящий мигающий стоп - хочется вынести стекло "горе-кулибину". Я спокойный, но не все же такие сдержанные.

Что за дурацкая тяга что-то приколхозить к своему авто? Не устраивает машина - купи другую...

Действительно не устраивает люстра купи другую квартиру... Ну не удержался уж простите. Каждому свое вобщем...

infyniti
Offline
Зарегистрирован: 15.07.2017

Можно кинуть через цифровой .Нажал педаль включилось реле контакты перемкнулись вот тебе и обычная кнопка.

infyniti
Offline
Зарегистрирован: 15.07.2017

Только через ардуино не пускай 12 вольт а то что ненужно выгорит.

И что нужно тоже.

seregaeshka
Offline
Зарегистрирован: 23.08.2017

infyniti пишет:

Можно кинуть через цифровой .Нажал педаль включилось реле контакты перемкнулись вот тебе и обычная кнопка.

ок на цифровой вход подключаю +12в от разьема стопака (или от концевика педали) через понижающий стабилизатор. В результате имеем 5в+ на входе например D8... а вот скетч как переписать чтобы при (+5)high на D8 включался цикл. Желательно еще и без повторной записи в епром ))???

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

А может вы словами опишете работу программы. А то я чего-то не понял что и как работает.

infyniti
Offline
Зарегистрирован: 15.07.2017

Ну здесь я помочь наверно не смогу.Я сам начинающий еще не знаю всех зависимостей программы и переписать наверно не смогу.

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

seregaeshka - так, как вы хотите, этот скетч работать не будет. Программа написана так, что пока она не отыграет очередную последовательность миганий - она на кнопки не реагирует.  То есть вы нажали на тормоз - огонечки побежали.  Через мгновение тормоз отпустили - а огонечки все равно бегут. - Как долго? - зависит от режима. Я вижу у вас есть режимы и по 3секунды. и почти 5... То есть один раз нажали на тормоз - 5 секунд цветомузыки без остановки.

Чтобы эта трахома включалась при нажатии на педаль и ГАСЛА при отпускании педали - программу надо полностью переписывать.

seregaeshka
Offline
Зарегистрирован: 23.08.2017

b707 пишет:

seregaeshka - так, как вы хотите, этот скетч работать не будет. Программа написана так, что пока она не отыграет очередную последовательность миганий - она на кнопки не реагирует.  То есть вы нажали на тормоз - огонечки побежали.  Через мгновение тормоз отпустили - а огонечки все равно бегут. - Как долго? - зависит от режима. Я вижу у вас есть режимы и по 3секунды. и почти 5... То есть один раз нажали на тормоз - 5 секунд цветомузыки без остановки.

Чтобы эта трахома включалась при нажатии на педаль и ГАСЛА при отпускании педали - программу надо полностью переписывать.

кейсы можно переписать и покороче дело не в том.... там большинство написано так для примера.... просто я не пойму как написать чтоб при сигнале на еще один вход ардуино например D8 также воспроизводился цикл....

ну вот например  сейчас: есть кнопка мы ее жмем у нас 1 раз воспроизводится кэйс №1 ( в конце значение 1 пишетсся в память я чейка 0)  если жмем еще раз то вопроизводится в торой кейс и пишется в епром 2.... и т.д. 

Что мне сделать чтобы при сигнале +5в на любой свободный порт ардуино происходило тоже самое? (например я подключу 2 кнопку) на порт D8.  

 

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Во первых не использовать прерывание. Здесь прерывание это зло.

Во вторых у вас две кнопки . Одна для запуска мигания и остановки. А вторая для выбора програмы мигания.

В третих. Чем сложно работать на заказчика, тем что он как хозяин своего слова, всегда может эти слова поменять.

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

seregaeshka пишет:

кейсы можно переписать и покороче дело не в том.... там большинство написано так для примера.... просто я не пойму как написать чтоб при сигнале на еще один вход ардуино например D8 также воспроизводился цикл....

ну вот например  сейчас: есть кнопка мы ее жмем у нас 1 раз воспроизводится кэйс №1 ( в конце значение 1 пишетсся в память я чейка 0)  если жмем еще раз то вопроизводится в торой кейс и пишется в епром 2.... и т.д. 

Во-первых, дело не в том, чтобы "переписать покороче", а в том, чтобы написать по-другому. Так, чтобы воспроизведение одного кейса не блокировало всю программу. То есть все кейсы у вас написаны неправильно.

Ну а дальше - насчет кнопки - она у вас работает? Уверены? Вот вы включили кейс1, он начал мигать - что будет, если в середине кейса нажать кнопку, знаете? - НИЧЕГО. Кнопка не работает, пока кейс не кончится.

Вы все твердите про какую-то вторую кнопку. А это не главное. Главное - вам надо избавится от зависонов в программе. А когда избавитесь - все остальное можно будет сделать добавлением буквально пары строк - всего лишь заменить кнопку. что у вас сейчас есть - на выключатель тормоза.

seregaeshka
Offline
Зарегистрирован: 23.08.2017

1- К сожалению я не знаю как переписать по другому. ((

2- в принципе разницы нет будет работать вторая кнопка или нет пока не закончится кейс1.... Вот смотрите - Включаем, выбираем на кнопке № 1 режим например 4(4 раза клацаем кнопку №1 при это ждем пока все кейсы закончатся )) ) при этом у нас в епром записалось значение 4. При этом мы видем как выглядит каждый режим(кейс) при нажатии на кнопку№1. Потом на пример когда жмем на кн№2 наш кейс №4 воспроизводится....Что будет при нажатии 2х кнопок одновременно абсолютно не имеет значения для пользователя т.к. кн№1 у нас около задних коллонок авто а кн№2 это педаль тормоза ))) вобщем сложновато будет нажать 2 кнопки сразу. 

3-кн№2 утрированное понятие я так называю сигнал от педали тормоза.... сейчас на выключатель тормоза нет ничего в том то и беда. Я не пойму просто как исправить код чтобы при получении сигнала на любой свободный порт контроллера с кнопки, от педали, или еще не важно откуда включался выбраный ранее кейс вот и все.

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

seregaeshka пишет:

Я не пойму просто как исправить код чтобы при получении сигнала на любой свободный порт контроллера с кнопки, от педали, или еще не важно откуда включался выбраный ранее кейс вот и все.

это как раз проще простого, у вас уже есть нужный кусок в коде

if(digitalRead(knopka) == HIGH) 
 {
  switch(val)
  {
    case 1:stope=1; one();break;
    case 2:stope=1; two();break;
    case 3:stope=1; one1();break;
    case 4:stope=1; long1();break;
    case 5:stope=1; long2();break;
    case 6:stope=1; lsnk();break;
    case 7:stope=1; slsnk();break;
    case 8:stope=1; sdtd();break;
  }
}

Но только это вам мало поможет, так как код надо переписывать весь. Если вы действительно хотите это сделать сами - начните изучать программирование, это не сложно. Если вам нужен готовый продукт - лучше найдите знающего человека и заплатите денег.

sva_khv
Offline
Зарегистрирован: 19.12.2016

inspiritus пишет:

я бы не стал экспериментировать со стопярями, чем их больше и чем быстрее и ярчк они все светят, то лучше, а вся остальная светомузыка до добра не доведет.

Полностью согласен!

Как эксперемент, обучение, наработка опыта - почему бы нет.

Как реальная реализация на авто - повылазят следующие проблемы (если уж будете ставить - заранее их решайте):

1. Проблемы по питанию (согласование 12-5В, защита от серьезных помех по питанию)

2. Неустойчивая работа при минусовых температурах.

3. Проблемы реализации "на столе" и в машине. Например от вибраций перестанет работать один из двух таких мигающих стопов и с зади один работающий примут  за поворотнк - дальше мысль развивать?

sva_khv
Offline
Зарегистрирован: 19.12.2016

Если уж хоченться выделиться - светодиодная надпись с зади  вместо мигания аварийкой - СПАСИБО!

Вот ее можно переливать и зажигать как фантазии хватит! И на безопасности ПОЧТИ не скажеться!

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

seregaeshka - подумалось - а нафига вам брать сигнал с датчика под педалью? Это неудобно, да и провода придется через салон назад тянуть. Я бы подключился к стоп-сигналу в штатных фонарях авто.

seregaeshka
Offline
Зарегистрирован: 23.08.2017

b707 за код спс сегодня попробую

на счет педали это так - образно было сказано ))

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
sva_khv
Offline
Зарегистрирован: 19.12.2016

Вот сдесь грамотное решение по питанию ардуины от сети автомобиля - рекомендую.

http://arduino.ru/forum/apparatnye-voprosy/podklyuchenie-nano-k-bortovoi-seti-avtomobilya

toc
Offline
Зарегистрирован: 09.02.2013

seregaeshka пишет:

Проблема в том что ардуино долго грузится


Проблема решается так:
1. подключить через программатор
2. залить свою программу.
Результат:
3. загрузчик ардуино удалён
4. ваша программа запускается сразу при включении питания.

Ozzi-zi
Ozzi-zi аватар
Offline
Зарегистрирован: 01.02.2018

М... да,  посмотрел на этото  "колхоз" и полностью согласен с коментариями !

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

Особенно остро проблемма проявляется  в "пробках" , в плохих погодных условиях .... и  тд.

Проявите уважение к тем ,кто  стоит или едет  за  вами!

 предлагаю скетч :https://yadi.sk/d/R1E2d3eC3RzwZd

 В котором реализован :

 1 эфект мигания  в стиле F1  (если пауза между нажатиями не превышает 35 секунд , то повторного мигания не происходит , просто "доп фонарь" дублирует стоповые фонари.

2 При вкл. повороте   реализован  эфект "бегущий огонь".

3 при вкл. "авария"  огоньки бегут навсречу  друг  другу.

4 при вкл. "задним ходом"  прерывистое мигание.

входы :  А0, А1,А2,А3 (сигналы от ламп  тормоза, поворотов и заднего хода)

выходы : Pin 2 - Pin 13, А4,А5  ( 14 светодиодов )

если возникнут вопросы  задавайте 

 

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

Ozzi-zi пишет:

если возникнут вопросы  задавайте

у меня вопрос - это реклама? Если да - нафига она здесь?

А если хочется поделится своим опытом - есть раздел "Проекты", где люди выкладывают свои поделки, со схемами и с кодом, чтоб каждый мог повторить. Бесплатно.

ELITE
ELITE аватар
Offline
Зарегистрирован: 11.01.2018

огребете вы по полной при первом же ДПСнике за такой стопе... у вас видимо лишние 5000р и права запасные есть....

Ozzi-zi
Ozzi-zi аватар
Offline
Зарегистрирован: 01.02.2018

первый раз здесь.  не знал про раздел "проекты"

корыстные цели не преследую.

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

схема работает на макетке , как  установлю в фонарь выложу в раздел.

maratkoreetz
Offline
Зарегистрирован: 21.10.2018

Доброй ночи,ардуинщики!У меня есть такой скетч:

include <Adafruit_NeoPixel.h>             // подключаем библиотеку
int count=27; // количество диодов на одной фаре 
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овой сигнал, то обнуляем счетчик, чтобы поворотник мигал еще как минимум 2 раза
            } 
            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(40);
          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(40);
          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(40);
          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(40);
          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(40);
          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(40);
          strip2.show();
    
  
всё нормально работает,скетч залит на Ардуино нано-3,  на перед машины буду устанавливать, а на задние бегущие поворотники+стоп+задний ход, никак не могу на форуме найти скетч,и сам пока ещё только начинающий,пробовал написать скетч сам, не получается,если у кого есть скетч на задние бегущие поворотники+стоп+задний ход на платформе ардуино нано,пожалуйста скиньте!!! Заранее благодарю!!!
vvadim
Offline
Зарегистрирован: 23.05.2012

1. вы влезли в чужую тему.
это плохо.
создайте свою.

2. опубликуйте отформатированный код по правилам форума.

3. здесь программы помогают написать тем, кто что то сам сделал.

4. в разделе "Ищу исполнителя" могут написать за денежку.

 

 

SLKH
Offline
Зарегистрирован: 17.08.2015

Когда-то лепил себе на рассыпухе параллельную цепь на стопы (машина с автоматической коробкой!!):

при отпускании педали газа стопы зажигаются примерно на 0,5 секунды. 

Считаю полезной.

sva_khv
Offline
Зарегистрирован: 19.12.2016

SLKH пишет:

Когда-то лепил себе на рассыпухе параллельную цепь на стопы (машина с автоматической коробкой!!):

при отпускании педали газа стопы зажигаются примерно на 0,5 секунды. 

Считаю полезной.

Интересная идея! Не лишена рационального зерна. Надо будет при случае реализовать.

Ozzi-zi
Ozzi-zi аватар
Offline
Зарегистрирован: 01.02.2018

https://yadi.sk/d/NK97toRM98l8QA

скетч написан на FLprog  для заднего доп .стоп фонаря :

при торможении эфект F1

при вкл поворотах , загорание  светодиодов (16шт.) последовательно  в сторону поворота

задний ход  - мигание

аварийка  -  встречное направление вкл. светодиодов

доп стоп  фонарь состоит из 16 светодиодов

Скетч в IDE

https://yadi.sk/d/oUaIx1YrQR4z0w