// กำหนดขา GPIO สำหรับ Ultrasonic Sensor และ LED
#define TRIG_PIN 18 // GPIO สำหรับขา Trig ของ Ultrasonic Sensor
#define ECHO_PIN 19 // GPIO สำหรับขา Echo ของ Ultrasonic Sensor
#define LED_PIN 2 // GPIO สำหรับ LED
void setup() {
// ตั้งค่าขา GPIO
pinMode(TRIG_PIN, OUTPUT); // ตั้งขา Trig เป็นเอาต์พุต
pinMode(ECHO_PIN, INPUT); // ตั้งขา Echo เป็นอินพุต
pinMode(LED_PIN, OUTPUT); // ตั้งขา LED เป็นเอาต์พุต
// เริ่มต้น Serial Monitor สำหรับการแสดงผล
Serial.begin(115200); // ใช้ Baud Rate 115200
}
void loop() {
// วัดระยะทางจาก Ultrasonic Sensor
float distance = measureDistance(); // เรียกใช้ฟังก์ชัน measureDistance
// แสดงระยะทางบน Serial Monitor
Serial.print("Distance: ");
Serial.print(distance); // แสดงค่าระยะทาง
Serial.println(" cm"); // ระบุหน่วยเป็นเซนติเมตร
// ตรวจสอบระยะทางและควบคุมการทำงานของ LED
if (distance > 150) {
digitalWrite(LED_PIN, HIGH); // ถ้าระยะทางมากกว่า 150 ซม. ให้เปิด LED
} else {
digitalWrite(LED_PIN, LOW); // ถ้าระยะทางน้อยกว่าหรือเท่ากับ 150 ซม. ให้ปิด LED
}
delay(500); // หน่วงเวลา 500 มิลลิวินาทีเพื่อหลีกเลี่ยงการอ่านค่าบ่อยเกินไป
}
// ฟังก์ชันวัดระยะทาง
float measureDistance() {
// ส่งสัญญาณ Trig
digitalWrite(TRIG_PIN, LOW); // เริ่มต้นด้วยการตั้ง Trig เป็น LOW
delayMicroseconds(2); // หน่วงเวลา 2 ไมโครวินาที
digitalWrite(TRIG_PIN, HIGH);// ส่งสัญญาณ HIGH
delayMicroseconds(10); // ส่งสัญญาณ HIGH เป็นเวลา 10 ไมโครวินาที
digitalWrite(TRIG_PIN, LOW); // กลับไปที่ LOW
// อ่านเวลาที่ Echo ใช้ในการสะท้อนกลับ
long duration = pulseIn(ECHO_PIN, HIGH); // วัดเวลาที่สัญญาณ HIGH กลับมาที่ Echo
// คำนวณระยะทาง (หน่วย: เซนติเมตร)
// ระยะทาง = (ระยะเวลาการเดินทางของเสียง (ไมโครวินาที) x ความเร็วเสียงในอากาศ (0.034 ซม./ไมโครวินาที)) / 2
float distance = duration * 0.034 / 2;
return distance; // ส่งค่าระยะทางกลับไป
}
/*
คำอธิบายและกรณีการใช้งาน (USE CASE):
1. **วัดระยะทางด้วย Ultrasonic Sensor:**
- โค้ดนี้สามารถใช้ตรวจจับระยะทางระหว่าง Ultrasonic Sensor และวัตถุ
- เหมาะสำหรับโครงงาน IoT เช่น ระบบเตือนการชนหรือการตรวจจับสิ่งกีดขวาง
2. **ควบคุม LED ตามระยะทาง:**
- LED จะเปิดเมื่อระยะทางมากกว่า 150 ซม. และปิดเมื่อระยะทางน้อยกว่าหรือเท่ากับ 150 ซม.
- สามารถประยุกต์ใช้ในระบบแจ้งเตือน เช่น การเปิดไฟเมื่อไม่มีวัตถุใกล้เคียง
3. **การเรียนรู้พื้นฐาน Ultrasonic Sensor:**
- เหมาะสำหรับผู้เริ่มต้นที่ต้องการเรียนรู้วิธีใช้งาน Ultrasonic Sensor HC-SR04
- แสดงถึงการทำงานของฟังก์ชัน `pulseIn` สำหรับการวัดเวลา
4. **การพัฒนาโครงงาน IoT:**
- สามารถเพิ่มการเชื่อมต่อกับอินเทอร์เน็ตเพื่อติดตามระยะทางแบบเรียลไทม์
- เช่น การส่งข้อมูลระยะทางไปยังเซิร์ฟเวอร์ผ่าน Wi-Fi
5. **การขยายฟังก์ชัน:**
- เพิ่มระบบเสียงแจ้งเตือนหรือการแสดงผลบนหน้าจอ OLED
- ประยุกต์ใช้งานในระบบควบคุมการจอดรถ หรือระบบรักษาความปลอดภัย
6. **การตั้งค่าค่าระยะทาง:**
- สามารถปรับค่า `150` เพื่อกำหนดระยะทางที่เหมาะสมกับการใช้งานจริง เช่น การตรวจจับในพื้นที่แคบหรือกว้าง
*/