// กำหนดขา Trig และ Echo
const int trigPin = 5;
const int echoPin = 18;
// ตัวแปรสำหรับเก็บค่าระยะเวลาและระยะทาง
long duration;
float distance;
void setup() {
// เริ่มต้น Serial Monitor
Serial.begin(115200);
// กำหนดโหมดการทำงานของขา
pinMode(trigPin, OUTPUT); // ขาส่งสัญญาณออก (Trig)
pinMode(echoPin, INPUT); // ขารับสัญญาณเข้า (Echo)
}
void loop() {
// 1. เคลียร์ขา Trig ให้เป็น LOW ก่อน
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// 2. ส่งสัญญาณ Trig ออกไปเป็นเวลา 10 ไมโครวินาที
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 3. อ่านค่าความกว้างของสัญญาณสะท้อนกลับ (Echo)
duration = pulseIn(echoPin, HIGH);
// 4. คำนวณระยะทาง (cm)
// ความเร็วเสียงในอากาศประมาณ 0.034 cm/us หาร 2 เพราะไป-กลับ
distance = duration * 0.034 / 2;
// 5. ตรวจสอบเงื่อนไขตามโจทย์
if (distance < 10) {
// ถ้าระยะน้อยกว่า 10 cm ให้พิมพ์เตือน
Serial.println("WARNING!");
} else {
// ถ้ามากกว่าหรือเท่ากับ 10 cm ให้แสดงระยะทางปกติ
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
// หน่วงเวลาเล็กน้อยก่อนวัดครั้งถัดไป
delay(500);
}