Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
 
	 
	Airbus style 😉 👍Вечерняя проверка в режиме стробоскопа.
70 мс - горит
70 мс - выключен
70 мс - горит
300 мс - выключен
ну и далее в таком цикле)
Скоро и автопилот продемонстрируете?
БАНО на диодах проверьте на радио совместимость. У мощных диодов драйверы иногда фонят. Я пользуюсь носимой рацией авиа диапазона ( Icom A4 ).
Вот сейчас думаю над тем, стоит ли в лампах ставить отдельно постоянно включенный цветной светодиод и белый строб - это нужно будет либо тремя проводами к каждой лампе вести питание, либо добавлять в схему пригоршню диодов и транзисторов, чтобы управлять через переполюсовку на двух проводах...
На предлагаемых потребителю современных БАНО на светодиодах от "фонариков" идёт 4 провода. 1 - Навигационный огонь; 2 - Стробоскоп ( белый ); 3 - масса (-); 4 - синхронизация стробоскопов ( от всех фонариков ). Эта схема устоялась и при подключении не смущает. Более, на стоянке, в тёмное время суток, включенные БАНО полезны ( как подсветка площадки и как габаритные огни, чтобы в темноте не тыкаться в консоли ), а вот, работающие сторобоскопы раздражают. Потому, БАНО включаем и светят постоянно ( даже при не работающем моторе ), а стробоскопы - на рулении.
К стати, почему-то не встречаются сборки с мощными ( 3 Вт ) диодами? Возможно, есть какие-то проблемные моменты, которые проще решаются несколькими сборками из менее мощных диодов?
На 12 вольт бортовой сети недостаточно. На каждую пару светодиодов в одном фонарике на длинном проводе получается почти 8 вольт. Всего фонариков 3 штуки. Чтобы их питать с одного модуля, нужно 22-24 вольта на выходе, и на 1-2 вольта больше на общем питании. То есть, на 27 вольтах можно, но на 12 не выйдет. Разве что соединять фонарики параллельно, но они так долго не прослужат - а это не наш путь. Так делать - себя не уважать.А для чего на каждый фонарик свой модуль XL4015 ? Одного для всех не достаточно?
#include <EEPROM.h>
int white = 9;
int green = 10;
int red = 11;
int sel = 12;
int trig = 8;
boolean change = false;
boolean trigger = false;
byte pr = 0;
byte pron = 2;
byte proff = 0;
unsigned long tmr = 0;
unsigned long currentdew = 0;
void disco() {
  digitalWrite (white, LOW);
  digitalWrite (green, LOW);
  digitalWrite (red, LOW);
  delay(100);
  digitalWrite (green, HIGH);
  delay(100);
  digitalWrite (white, HIGH);
  delay(100);
  digitalWrite (green, LOW);
  digitalWrite (red, HIGH);
  delay(100);
  digitalWrite (white, LOW);
  delay(100);
  digitalWrite (red, LOW);
}
void setup() {
  pinMode(white, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(red, OUTPUT);
  pinMode(sel, INPUT_PULLUP);
  pinMode(trig, INPUT_PULLUP);
  if (EEPROM.read(1) < 10) {
    proff = EEPROM.read(1);
  }
  if (EEPROM.read(2) < 10) {
    pron = EEPROM.read(2);
  }
}
void loop() {
  if (digitalRead(trig) == LOW) {
    trigger = true;
    pr = pron;
  }
  if (digitalRead(trig) == HIGH) {
    trigger = false;
    pr = proff;
  }
  if (!change && digitalRead(sel) == LOW) {
    change = true;
  }
  if (change && digitalRead(sel) == HIGH) {
    change = false;
    if (trigger) {
      pron++;
      if (pron > 5) {
        pron = 0;
      }
      pr = pron;
      EEPROM.write(2, pron);
    }
    if (!trigger) {
      proff++;
      if (proff > 5) {
        proff = 0;
      }
      pr = proff;
      EEPROM.write(1, proff);
    }
    disco();
    tmr = millis();
  }
  if (pr == 0) {
    digitalWrite (white, LOW);
    digitalWrite (green, LOW);
    digitalWrite (red, LOW);
  }
  if (pr == 1) {
    digitalWrite (white, HIGH);
    digitalWrite (green, HIGH);
    digitalWrite (red, HIGH);
  }
  if (pr == 2) {
    currentdew = millis() - tmr;
    if (currentdew < 70) {
      digitalWrite (white, HIGH);
      digitalWrite (green, HIGH);
      digitalWrite (red, HIGH);
    }
    if (currentdew > 70 && currentdew < 140) {
      digitalWrite (white, LOW);
      digitalWrite (green, LOW);
      digitalWrite (red, LOW);
    }
    if (currentdew > 140 && currentdew < 210) {
      digitalWrite (white, HIGH);
      digitalWrite (green, HIGH);
      digitalWrite (red, HIGH);
    }
    if (currentdew > 210 && currentdew < 280) {
      digitalWrite (white, LOW);
      digitalWrite (green, LOW);
      digitalWrite (red, LOW);
    }
    if (currentdew > 510) {
      tmr = millis();
    }
  }
  if (pr == 3) {
    currentdew = millis() - tmr;
    if (currentdew < 100) {
      digitalWrite (white, HIGH);
      digitalWrite (green, HIGH);
      digitalWrite (red, HIGH);
    }
    if (currentdew > 100 && currentdew < 600) {
      digitalWrite (white, LOW);
      digitalWrite (green, LOW);
      digitalWrite (red, LOW);
    }
    if (currentdew > 600) {
      tmr = millis();
    }
  }
  if (pr == 4) {
    currentdew = millis() - tmr;
    if (currentdew < 500) {
      digitalWrite (white, HIGH);
      digitalWrite (green, HIGH);
      digitalWrite (red, HIGH);
    }
    if (currentdew > 500 && currentdew < 800) {
      digitalWrite (white, LOW);
      digitalWrite (green, LOW);
      digitalWrite (red, LOW);
    }
    if (currentdew > 800) {
      tmr = millis();
    }
  }
  if (pr == 5) {
    currentdew = millis() - tmr;
    if (currentdew < 100) {
      digitalWrite (white, HIGH);
      digitalWrite (green, HIGH);
      digitalWrite (red, HIGH);
    }
    if (currentdew > 100 && currentdew < 600) {
      digitalWrite (white, LOW);
    }
    if (currentdew > 600) {
      tmr = millis();
    }
  }
}