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