#define RED 11 // Присваиваем имя RED для пина 11
#define GREEN 12 // Присваиваем имя GREEN для пина 12
#define BLUE 13 // Присваиваем имя BLUE для пина 13

int but;
 
void setup()
{
  pinMode(RED, OUTPUT); // Используем Pin11 для вывода
  pinMode(GREEN, OUTPUT); // Используем Pin12 для вывода
  pinMode(BLUE, OUTPUT); // Используем Pin13 для вывода
  pinMode(2, INPUT); // объявляем пин 2 как вход
  pinMode(4, INPUT); // объявляем пин 2 как вход
  digitalWrite(RED, LOW); // Включаем красный свет
  digitalWrite(GREEN, LOW);
  digitalWrite(BLUE, LOW);
}

void(* resetFunc) (void) = 0; // Reset MC function

void loop()
{
  if (digitalRead(2) == HIGH) // когда на пин 2 поступает высокий сигнал
  {
    but=1;
  }
  if (digitalRead(4) == HIGH)
  {
     resetFunc(); //вызов
  }
  if (but == 1)
  {
    digitalWrite(RED, HIGH); // Включаем красный свет
    digitalWrite(GREEN, LOW);
    digitalWrite(BLUE, LOW);
    

    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
 
   digitalWrite(RED, LOW);
   digitalWrite(GREEN, HIGH); // Включаем зеленый свет
   digitalWrite(BLUE, LOW);
 
    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
 
    digitalWrite(RED, LOW);
    digitalWrite(GREEN, LOW);
    digitalWrite(BLUE, HIGH); // Включаем синий свет
 
    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
  
    digitalWrite(RED, HIGH); // Включаем красный свет
    digitalWrite(GREEN, HIGH);
    digitalWrite(BLUE, LOW);
 
    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
 
    digitalWrite(RED, LOW);
    digitalWrite(GREEN, HIGH); // Включаем зеленый свет
    digitalWrite(BLUE, HIGH);
 
    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
 
    digitalWrite(RED, HIGH);
    digitalWrite(GREEN, LOW);
    digitalWrite(BLUE, HIGH); // Включаем синий свет
 
    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
  
    digitalWrite(RED, HIGH);
    digitalWrite(GREEN, HIGH);
    digitalWrite(BLUE, HIGH); // Включаем синий свет
 
    delay(1000); // Устанавливаем паузу для эффекта
    if (digitalRead(4) == HIGH) // когда на пин 2 поступает высокий сигнал
    {
      resetFunc(); //вызов
    }
   }
}
