#define trigPin 10 // номер пина Trig
#define echoPin 11 // номер пина Echo
#define rLed 12 // номер пина к которому подключён красный LED
#define yLed 8 // номер пина к которому подключён жёлтый LED
#define bLed 9 // номер пина к которому подключён синий LED
#define buzz 7 // номер пина к которому подключён пьезоизлучатель
void setup() {
  // Настраиваем пины
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT);
  pinMode(bLed, OUTPUT); 
  pinMode(yLed, OUTPUT); 
  pinMode(rLed, OUTPUT); 
  pinMode(buzz, OUTPUT);
}
void loop() {
  int duration, distance;
  // для большей точности установим значение LOW на пине Trig 
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2); 
  // Теперь установим высокий уровень на пине Trig
  digitalWrite(trigPin, HIGH);
  // Подождем 10 μs 
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW); 
  // Узнаем длительность высокого сигнала на пине Echo
  duration = pulseIn(echoPin, HIGH); 
  // Рассчитаем расстояние
  distance = duration / 58;
  if (distance > 20) { // Если расстояние > 20 см то
    digitalWrite(bLed, HIGH); // Включаем только синий LED
    digitalWrite(yLed, LOW);
    digitalWrite(rLed, LOW);
    digitalWrite(buzz, LOW);
  }
  else if (distance <= 20 && distance > 10) { // Расстояние от 
    // 20 до 10 
    digitalWrite(yLed, HIGH); // Включаем только жёлтый LED
    digitalWrite(bLed, LOW);
    digitalWrite(rLed, LOW);
    digitalWrite(buzz, HIGH);
    delay(100);
    digitalWrite(buzz, LOW);
    delay(100);
  }
  else if (distance < 10) { // Расстояние < 10
    digitalWrite(rLed, HIGH); // Включаем только красный LED
    digitalWrite(yLed, LOW);
    digitalWrite(bLed, LOW);
    digitalWrite(buzz, HIGH);
    delay(50);
    digitalWrite(buzz, LOW);
    delay(50); // И пьезоизлучатель
  }
  delay(100); // Ждём 100 милисекунд
}