Arduino ช่วยแนะนำหน่อยครับ

กระทู้คำถาม
ต้องการให้ buzzer ดังครั้งแรกตอน ระยะน้อย6 ครั้งแรกเท่านั้น และจะดังอีกครั้งก็ต่อเมื่อ ระยะมากกว่า 6 แล้วกลับมาน้อยกว่า 6 ให้ดังอีกครั้ง
ต้องการใช้ดังแค่ครั้งแรกของการตรวจจับทุกครั้ง
ของผมตอนนี้ คือมันดังหยุด  ดังหยุดไปเรื่อยๆ มันวนลูป
โค้ดที่ใช้  มีแนะนำวิธีเขียนแก้ได้บ้างไหมครับ
const int trigPin1 = 16;
const int echoPin1 = 14;
const int ledPin1 = 15;

const int buzzer = 2;

long duration1;
int distance1;
int safetyDistance1;

void setup() {
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(ledPin1, OUTPUT);
  
  Serial.begin(9600);

}

void loop() {  
// Clears the trigPin
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);

// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds
duration1 = pulseIn(echoPin1, HIGH);

// Calculating the distance
distance1= duration1 *0.034/2;

safetyDistance1 = distance1;
delay(1000);

  if (safetyDistance1 <= 6){
  tone(buzzer, 1000);
  digitalWrite(ledPin1, LOW);
  delay(1000);        
  noTone(buzzer);
  delay(1000);
  }else{
  digitalWrite(ledPin1, HIGH);
}
}
แก้ไขข้อความเมื่อ
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่