// Pinlərin təyin edilməsi
const int trigPin = 11;
const int echoPin = 12;
const int buzzer = 5;
const int ledYasil = 13;
const int ledSari = 5;
const int ledQirmizi = 6;
long muddet;
int mesafe;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(ledYasil, OUTPUT);
pinMode(ledSari, OUTPUT);
pinMode(ledQirmizi, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Ultrasonik sensorla məsafəni ölçmək
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
muddet = pulseIn(echoPin, HIGH);
mesafe = muddet * 0.034 / 2; // Santimetrə çevirmə
Serial.print("Mesafe: ");
Serial.println(mesafe);
if (mesafe > 30) {
// Təhlükəsiz məsafə
hamisiniSondur();
}
else if (mesafe <= 30 && mesafe > 20) {
// Uzaq məsafə (Yalnız yaşıl)
digitalWrite(ledYasil, HIGH);
digitalWrite(ledSari, LOW);
digitalWrite(ledQirmizi, LOW);
siqnalVer(500); // Yavaş siqnal
}
else if (mesafe <= 20 && mesafe > 10) {
// Orta məsafə (Yaşıl və Sarı)
digitalWrite(ledYasil, HIGH);
digitalWrite(ledSari, HIGH);
digitalWrite(ledQirmizi, LOW);
siqnalVer(200); // Orta sürətli siqnal
}
else if (mesafe <= 10) {
// Çox yaxın (Hamısı yanır)
digitalWrite(ledYasil, HIGH);
digitalWrite(ledSari, HIGH);
digitalWrite(ledQirmizi, HIGH);
siqnalVer(50); // Çox sürətli siqnal
}
}
void siqnalVer(int gecikme) {
digitalWrite(buzzer, HIGH);
delay(gecikme);
digitalWrite(buzzer, LOW);
delay(gecikme);
}
void hamisiniSondur() {
digitalWrite(ledYasil, LOW);
digitalWrite(ledSari, LOW);
digitalWrite(ledQirmizi, LOW);
digitalWrite(buzzer, LOW);
}