Помогите с кодом кнопки

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

int A = 0;
int T = 1;

void Step() {
pinMode(3, OUTPUT);
digitalWrite(3, 1);
delayMicroseconds(T);
pinMode(3, OUTPUT);
digitalWrite(3, 0);
delayMicroseconds(T);
}

void setup() {
Serial.begin(9600);

}

void loop() {
A = analogRead(A0);
Serial.println(A);
if (A > 550) {
T = map(A, 550, 1023, 10000, 700);
pinMode(2, OUTPUT);
digitalWrite(2, 1);
Step();
}
if (A < 500) {
T = map(A, 500, 0, 10000, 700);
pinMode(2, OUTPUT);
digitalWrite(2, 0);
Step();
}
if (A > 500 & A < 550) {
pinMode(2, OUTPUT);
digitalWrite(2, 0);
pinMode(3, OUTPUT);
digitalWrite(3, 0);
}

}

int T = 1;

void Step() {
  pinMode(3, OUTPUT);
   digitalWrite(3, 1);
  delayMicroseconds(T);
  pinMode(3, OUTPUT);
   digitalWrite(3, 0);
  delayMicroseconds(T);
}


void setup() {
  Serial.begin(9600);

}

void loop() {
    A = analogRead(A0);
    Serial.println(A);
    if (A > 550) {
      T = map(A, 550, 1023, 10000, 700);
      pinMode(2, OUTPUT);
       digitalWrite(2, 1);
      Step();
    }
    if (A < 500) {
      T = map(A, 500, 0, 10000, 700);
      pinMode(2, OUTPUT);
       digitalWrite(2, 0);
      Step();
    }
    if (A > 500 & A < 550) {
      pinMode(2, OUTPUT);
       digitalWrite(2, 0);
      pinMode(3, OUTPUT);
       digitalWrite(3, 0);
    }

} ```

На каком пине ждать сигнала ???

Можно на D8 он пуст

Или A1

void setup() {
  pinMode(8, INPUT);
  while (digitalRead(8));
  delay(100);
  while (!digitalRead(8));
  Serial.begin(9600);
  Serial.println("Start");
}

Это мне просто сверху кода добавить да?

setup заменить

С начало не работает все верно но подав единицу на 8 пин ни чего не происходит то-есть не включается а если пройдет немного времени сам по себе включается но не выключается

А пин притянут к нулю резистором ???

нет сейчас припаяю

Без подтяжки там вечный космос …

Мне его к минусу подтянуть?

Через резистор ~10кОм!

Все так сделал теперь при подачи единице срабатывает кратковременно и отключается!

В мониторе порта Start и все

Вы свой то код не затерли ???
Выложите ИТОГОВЫЙ код !!!

int A = 0;
int T = 1;

void Step() {
pinMode(3, OUTPUT);
 digitalWrite(3, 1);
delayMicroseconds(T);
pinMode(3, OUTPUT);
 digitalWrite(3, 0);
delayMicroseconds(T);
}


void setup() {
pinMode(8, INPUT);
while (digitalRead(8));
delay(100);
while (!digitalRead(8));
Serial.begin(9600);
Serial.println("Start");

}

void loop() {
  A = analogRead(A0);
  Serial.println(A);
  if (A > 550) {
    T = map(A, 550, 1023, 10000, 700);
    pinMode(2, OUTPUT);
     digitalWrite(2, 1);
    Step();
  }
  if (A < 500) {
    T = map(A, 500, 0, 10000, 700);
    pinMode(2, OUTPUT);
     digitalWrite(2, 0);
    Step();
  }
  if (A > 500 & A < 550) {
    pinMode(2, OUTPUT);
     digitalWrite(2, 0);
    pinMode(3, OUTPUT);
     digitalWrite(3, 0);
  }

} ```

Если вы увидели Start - значит setup полностью отработал и начал работу цикл loop
Должен срабатывать Serial.println(A); и выводить переменную A …