int trigger = 4;
int echo = 5;
void setup() {
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(25, OUTPUT); // Green LED
pinMode(26, OUTPUT); // Yellow LED
pinMode(14, OUTPUT); // Red LED
pinMode(21, OUTPUT); // Buzzer
Serial.begin(9600);
}
int finding_distance() {
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
float duration = pulseIn(echo, HIGH);
return (duration * 0.034 / 2);
}
void loop() {
int distance = finding_distance();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance >= 300) {
digitalWrite(25, HIGH); // Green LED on
digitalWrite(26, LOW); // Yellow LED off
digitalWrite(14, LOW); // Red LED off
noTone(21); // Buzzer off
Serial.println("You are safe");
} else if (distance < 300 && distance >= 200) {
digitalWrite(25, LOW); // Green LED off
digitalWrite(26, HIGH); // Yellow LED on
digitalWrite(14, LOW); // Red LED off
tone(21, 500); // Buzzer at very low frequency
Serial.println("A ship is nearby");
} else if (distance < 200 && distance >= 100) {
digitalWrite(25, LOW); // Green LED off
digitalWrite(26, LOW); // Yellow LED off
digitalWrite(14, HIGH); // Red LED on
tone(21, 3000); // Buzzer at high frequency
Serial.println("Danger ahead, buzzer on");
} else {
digitalWrite(25, LOW); // Green LED off
digitalWrite(26, LOW); // Yellow LED off
digitalWrite(14, LOW); // Red LED off
tone(21, 3000); // Buzzer at high frequency
Serial.println("Immediate danger, buzzer on");
}
}