int redPin = 13;
int greenPin = 12;
int yellowPin = 11;

int buzzerPin = 8;
int val;
int frequency = map(val, 0, 1023, 3500, 4500);

bool isRed;

void setup() {
  pinMode(redPin, OUTPUT), pinMode(greenPin, OUTPUT), 
  pinMode(yellowPin, OUTPUT);
  
  StateMachine(0);
}
void loop(){}

//машина состояний
void StateMachine(int numberState)
{
  //базовое переключение переменных в свиче
  switch(numberState)
  {
    case 0:
    LightWorks(redPin);    
    
    digitalWrite(yellowPin, HIGH);
    break;

    case 1:
    digitalWrite(yellowPin, HIGH);
    delay(750); 
    digitalWrite(yellowPin, LOW);

    if(isRed)
    {
      isRed = false;
      StateMachine(2);    
    }
    else
    {
      StateMachine(0);
    }
    break;

    case 2:
    LightWorks(greenPin);      
    break;
  }
  
}


void LightWorks(int numberPin)
{    
  digitalWrite(numberPin, HIGH);
  delay(1500); 



  for(int i = 0; i < 3; i++)
  {
    tone(buzzerPin, frequency, 300);

    digitalWrite(numberPin, LOW);
    delay(150);
    digitalWrite(numberPin, HIGH);
    delay(150);
  }

  digitalWrite(numberPin, LOW);

  
  if(numberPin == redPin)
  {
    digitalWrite(yellowPin, HIGH);
    isRed = true;
  }
  StateMachine(1);
}

Светофор база