#define TRIG_PIN 9
#define ECHO_PIN 10
float filtArray [20];
float distance;
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop(){
Serial.println("รอก่อนกำลังตรวจสอบ...");
for(int sample = 0; sample < 20; sample++){
filtArray[sample] = ultrasonicMeasure();
delay(50);
}
for (int i = 0; i < 19; i++){
for (int j = i + 1; j < 20; j++){
if (filtArray[i] > filtArray[j]){
float swap = filtArray[i];
filtArray[i] = filtArray[j];
filtArray[j] = swap;
}
}
}
double sum = 0;
for (int sample = 5; sample < 15; sample++){
sum += filtArray[sample];
}
distance = sum / 10;
Serial.print("ระยะที่ตรวจจับวัตถุได้เฉลี่ย : ");
Serial.print(distance);
Serial.print(" เซนติเมตร");
}
float ultrasonicMeasure(){
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
float duration_us = pulseIn(ECHO_PIN, HIGH);
float distance_cm = 0.017 * duration_us;
return distance_cm;
}