Нужна помощь с delay, как его заменить на millis

Tsara
Offline
Зарегистрирован: 09.05.2018
int BAT = A2;                //Вход напряжения аккумулятора машины +12
int ACC = 2;                 //Вход звжигания
int KNOP = 8;                //Вход кнопки вкл. на панели
int POWER = 13;              //Выход вкл. батареи планшета
int HUB = 4 ;                //Выход вкл. хаба
int REM = 5;                 //Выход вкл. усилителя и доп. устройств
int TILT = 9;                //Выход кнопки вкл. планшета
int MEDIA = 0;               //Переменная 0-планшет выключен 1-включен
int FIRST = 1;               //Переменная 1-первый старт устройства 0-уже запущен
float VOLT ;                 //Переменная текущего напряжения акку. машины
int BAT_VOLT ;               //Переменная напряжения
int ACCstate ;               //Переменная текущего состояния ACC зажигания 0-выкл. 1-вкл.
// Установки при запуске: Назначаем пины.
void setup() {
pinMode(BAT, INPUT);
pinMode(ACC, INPUT_PULLUP);
pinMode(KNOP, INPUT);
pinMode(POWER, OUTPUT);
pinMode(HUB, OUTPUT);
pinMode(REM, OUTPUT);
pinMode(TILT, OUTPUT);
}

// Повторяющийся цикл:
void loop() 
{
  ACCstate = !digitalRead(ACC);                                             //Считываем положение ACC зажигания
  BAT_VOLT = analogRead(BAT);                                               //Считываем напряжение аккум. машины
  VOLT = BAT_VOLT * (18.000 / 1023);                                        //Пересчитываем значения в вольты
if (VOLT > 11.1 && VOLT < 14.8 && ACCstate == 1 && MEDIA == 0               //Если напряжение больше 11,2 и меньше 14,8 и зажигание включено и устройство вЫключено
&& FIRST == 1)                                                              // и переменная FIRST-1 первый старт
{digitalWrite(POWER, HIGH);                                                 //Подаем питание на вкл. батареи планшета
delay(500);                                                                 //Задержка 
digitalWrite(HUB, HIGH);                                                    //Вкл. питание на хаб
delay(1000);                                                                //Задержка на 1 сек.
digitalWrite(REM, HIGH);                                                    //Включаем усилитель и доп. устройства
delay(2000);                                                                //Задержка на 2 сек.
digitalWrite(TILT, HIGH);                                                   //Нажимаем кнопку вкл. устройства
delay(3000);                                                                //Зажимаем на 3 сек.
digitalWrite(TILT, LOW);                                                    //Отпускаем кнопку вкл.
delay(80000);                                                               //Задержка вкл. на полную загрузку устройства
MEDIA = 1;                                                                  //Переменная MEDIA-1 устройство вклЮчено
FIRST = 0;}                                                                 //Переменная FIRST-0 устройство уже запущено
if (VOLT > 11.2 && VOLT < 14.8 && ACCstate == 1 && MEDIA == 0               //Если напряжение больше 11,2 и меньше 14,8 и зажигание включено и устройство вЫключено
&& FIRST == 0)                                                              // и переменная FIRST-0 устройство уже запущено
{digitalWrite(HUB, HIGH);                                                   //Вкл. питание на хаб
delay(1000);                                                                //Задержка на 1 сек. 
digitalWrite(REM, HIGH);                                                    //Включаем усилитель и доп. устройства
delay(2000);                                                                //Задержка на 2 сек.
digitalWrite(TILT, HIGH);                                                   //Нажимаем кнопку вкл. устройства
delay(1000);                                                                //Зажимаем на 1 сек.
digitalWrite(TILT, LOW);                                                    //Отпускаем кнопку вкл.
MEDIA = 1;}                                                                 //Переменная MEDIA-1 устройство вклЮчено
if (VOLT > 11.2 && VOLT < 14.8 && ACCstate == 0 && MEDIA == 1)              //Если напряжение больше 11,2 и меньше 14,8 и зажигание вЫключено и устройство включено
{digitalWrite(REM, LOW);                                                    //ВЫключаем усилитель и доп. устройства
delay(500);                                                                 //Задержка
digitalWrite(TILT, HIGH);                                                   //Нажимаем кнопку вкл. устройства
delay(1000);                                                                //Зажимаем на 1 сек.
digitalWrite(TILT, LOW);                                                    //Отпускаем кнопку вкл.
delay(1000);                                                                //Задержка 1 сек.
digitalWrite(HUB, LOW);                                                     //Выключаем хаб
MEDIA = 0; }                                                                //Переменная MEDIA-0 устройство вЫключено
if (VOLT <= 11.1 )                                                          //Если напряжение меньше 11.0 вольт
{digitalWrite(REM, LOW);                                                    //ВЫключаем все
delay(1000);
digitalWrite(HUB, LOW);                                                     //ВЫключаем все
delay(2000);
digitalWrite(POWER, LOW);                                                   //ВЫключаем все
MEDIA = 0;                                                                  //Переменная MEDIA-0 устройство вЫключено
FIRST = 1;}                                                                 //Переменная FIRST-1 первый старт
}


 

sadman41
Offline
Зарегистрирован: 19.10.2016

Для начала нужно понять, чего вы хотите добиться заменой delay() на millis().

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

Делей убираете, а миллис вставляете, делов-то. Вот видео как раз на эту тему.

Tsara
Offline
Зарегистрирован: 09.05.2018

сейчас на макетке вроде все работает, но боюсь глюков и зависаний из-за delay !

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

Понятное делло. Делэй он такой. Может пригласить попа, чтобы бесов из него изгнал? Глядишь, менее глюкавым станет.

Tsara
Offline
Зарегистрирован: 09.05.2018

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

Делей убираете, а миллис вставляете, делов-то. Вот видео как раз на эту тему.

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

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

Tsara пишет:

спасибо помог

Не за что, обращайтесь ещё.

Tsara
Offline
Зарегистрирован: 09.05.2018

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

Понятное делло. Делэй он такой. Может пригласить попа, чтобы бесов из него изгнал? Глядишь, менее глюкавым станет.

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

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

Tsara пишет:

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

Бабки возьмёт, но не избавит - не советую.

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

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