Помогите перейти на millis

Xrustik
Offline
Зарегистрирован: 13.06.2016

Добрый вечер.

Написал программу для включения фонарей заднего хода, туманок и камеры заднего хода:

byte CamFlag = 0;
unsigned long CamFlagCounter = 0;
unsigned long CamDelay = 20000;

void setup() {
pinMode(3, OUTPUT); //выход FOG-R
pinMode(4, OUTPUT); //выход FOG-L
pinMode(5, OUTPUT); //выход CAM
pinMode(9, OUTPUT); //выход FAN
pinMode(10, OUTPUT); //выход REAR-L
pinMode(11, OUTPUT); //выход REAR-R
pinMode(8, INPUT); //вход кнопки FOG
pinMode(12, INPUT); //вход кнопки REAR
}

void loop() {
int Fog = digitalRead(8);
int Rea = digitalRead(12);

if (Fog==HIGH){ //включение туманок
  digitalWrite(3, HIGH);//левая туманка
  digitalWrite(4, HIGH);//правая туманка
  digitalWrite(5, LOW);//камера
  digitalWrite(9, HIGH);//вентиляторы
  digitalWrite(10, LOW);//левый зх
  digitalWrite(11, LOW);//правый зх
  CamFlag=0;
}
if (Rea==HIGH){ //включение заднего хода
  digitalWrite(3, LOW);//левая туманка
  digitalWrite(4, LOW);//правая туманка
  digitalWrite(9, HIGH);//вентиляторы
  digitalWrite(10, HIGH);//левый зх
  digitalWrite(11, HIGH);//правый зх
  CamFlag=1;
}
if (Fog==LOW && Rea==LOW){ //выключаем все
  digitalWrite(3, LOW);//левая туманка
  digitalWrite(4, LOW);//правая туманка
  digitalWrite(9, LOW);//вентиляторы
  digitalWrite(10, LOW);//левый зх
  digitalWrite(11, LOW);//правый зх
  CamFlag=0;
}
if (CamFlag==1) {
  CamFlagCounter++;
  if (CamFlagCounter > CamDelay) digitalWrite(5, HIGH);
  }
else {
  CamFlagCounter = 0;
  digitalWrite(5, LOW);
  }
}

Все работает, но если в будущем прикручу туда же еще что-нибудь, то будут проблемы со временем задержки включения камеры. Как вот это:

if (CamFlag==1) {
  CamFlagCounter++;
  if (CamFlagCounter > CamDelay) digitalWrite(5, HIGH);
  }
else {
  CamFlagCounter = 0;
  digitalWrite(5, LOW);
  }

первести на millis

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

Xrustik пишет:
Все работает, но если в будущем прикручу туда же еще что-нибудь, то будут проблемы со временем задержки включения камеры.
Точно. Количество в коде вы написали, осталось написать более качественный код с очень сложной структурой.