#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 милисекунд
}