กลับไปหน้ารวมไฟล์
arduino-parking-sensor-dd03ef.md

มาทำระบบเซ็นเซอร์จอดรถอัจฉริยะด้วย Arduino กัน (Arduino Parking Sensor)

จะทำเซ็นเซอร์จอดรถด้วย Arduino เนี่ย ต้องมีอุปกรณ์นิดหน่อยจ้า เริ่มจากเซ็นเซอร์ตัวนึง ตามด้วยบัซเซอร์ (Buzzer) สำหรับเสียงเตือน แล้วก็ LED 8 ดวงไว้แสดงระยะ

ทำเซ็นเซอร์จอดรถด้วย Arduino ง่ายนิดเดียว แค่ใช้เซ็นเซอร์ HC-SR04 แต่ทีนี้เราต้องแสดงผลระยะห่างให้เห็นหน่อย วิธีง่ายๆ ก็ใช้ LED หลายๆ ดวงกับบัซเซอร์นี่แหละ

หลักการทำงานของเซ็นเซอร์และองค์ประกอบทางเทคนิค

หัวใจของโปรเจคนี้คือ เซ็นเซอร์อัลตราโซนิค HC-SR04 ซึ่งทำงานบนหลักการสะท้อนของเสียง (โซนาร์) เซ็นเซอร์จะปล่อยคลื่นเสียงความถี่สูง (ที่หูมนุษย์ฟังไม่เห็น) ออกไปผ่านตัวส่ง (Transmitter) แล้วรอรับคลื่นที่สะท้อนกลับมาจากวัตถุผ่านตัวรับ (Receiver)

ในทางเทคนิค เราต้องเขียนโค้ดเพื่อส่งสัญญาณพัลส์ (Pulse) ขนาด 10 ไมโครวินาทีไปที่ขา Trigger ของเซ็นเซอร์ จากนั้นเราก็วัดระยะเวลาที่ขา Echo ยังคงเป็นสถานะ HIGH อยู่ ระยะเวลานี้เราเรียกว่า Time of Flight (ToF) ซึ่งเอาไปคำนวณหาระยะทางได้ด้วยสูตร: ระยะทาง (ซม.) = (เวลาเดินทาง * 0.034) / 2 (โดยที่ 0.034 คือความเร็วเสียงในอากาศหน่วยเซนติเมตรต่อไมโครวินาที)

บอร์ดทดลองกับสายจัมเปอร์ ปัญหาชวนปวดหัว

เวลาใช้บัซเซอร์เนี่ย ต้องใช้ทรานซิสเตอร์ (Transistor) ด้วยนะ เพราะกระแสที่บัซเซอร์ต้องการอาจมากกว่าที่ขาของ Arduino จะจ่ายให้ไหว การต่อวงจรพวกนี้บางทีก็เบื่อและเหนื่อยมือเอาเรื่อง

Breadboard Circuits

ความท้าทายในการเดินสายบนเบรดบอร์ด

เมื่อเราสร้างระบบที่ต้องการการแสดงผลแบบละเอียด เราก็ต้องมีหน่วยแสดงผลที่มีประสิทธิภาพ ในโปรเจคนี้เราใช้ LED ทั้งหมด 8 ดวง แบ่งเป็น:

  • LED สีเขียว 3 ดวง: ระยะปลอดภัย
  • LED สีเหลือง 3 ดวง: โซนเตือน
  • LED สีแดง 2 ดวง: โซนหยุด!

แต่ปัญหาคือ การเดินสายวงจรบนเบรดบอร์ดมักจะกลายเป็นกองสายจัมเปอร์ที่ยุ่งเหยิง และจัดการอุปกรณ์ลำบาก

รายละเอียดโปรเจค

เราจะใช้ LED 8 ดวงในโปรเจคของเรา โดย 2 ดวงจะเป็นสีแดง, 3 ดวงสีเหลือง และ 3 ดวงสีเขียว การจะใช้ LED 8 ดวงได้ เราต้องใช้ตัวต้านทาน (Resistor) 220 โอห์ม 8 ตัวด้วย ซึ่งการเตรียมวงจรบนเบรดบอร์ดให้ใช้ตัวต้านทาน 8 ตัวพร้อม LED 8 ดวงเนี่ย ท้าทายพอสมควรเลยล่ะ

8 Led

นอกจากนี้ ระบบเสียงที่ใช้ บัซเซอร์ ก็มีความซับซ้อนซ่อนอยู่ แม้บัซเซอร์จะดูเหมือนใช้กระแสไม่มาก แต่ในทางปฏิบัติ ขาของ Arduino อาจจ่ายกระแสให้บัซเซอร์บางประเภทไม่เสถียร หรือเสียงอาจไม่ดังพอ ดังนั้นเราจึงต้องใช้ ทรานซิสเตอร์ (เช่น S8050 หรือ 2N2222) ทำหน้าที่เป็นสวิตช์อิเล็กทรอนิกส์ เพื่อดึงกระแสตรงจากแหล่งจ่ายไฟแทนที่จะดึงจากขาของ Arduino โดยตรง

Buzzer and Transistor

ทางเลือกใหม่: คิตเซ็นเซอร์จอดรถจาก Circle Electronic

Circle Electronic Parking Sensor Kit

สำหรับใครที่อยากทำเซ็นเซอร์จอดรถด้วย Arduino แบบไม่ปวดหัว Circle Electronic เขาออกแบบแผงวงจรสำเร็จรูปมาให้แล้วจ้า บนบอร์ดมี LED 8 ดวง พร้อมบัซเซอร์ ตัวต้านทาน และทรานซิสเตอร์สำหรับขับสัญญาณเสียงในตัว

Circle Electronic Parking Sensor Board

ผู้ใช้แค่เสียบเซ็นเซอร์ HC-SR04 เข้ากับเฮดเดอร์ตัวเมีย 4 ขาที่ด้านหน้า แล้วต่อสายสัญญาณไม่กี่เส้นไปหา Arduino เท่านี้ก็พร้อมเขียนโค้ดได้เลย ช่วยลดโอกาสเกิดสัญญาณรบกวน (Noise) ที่มักพบในวงจรเบรดบอร์ดที่มีสายยาวๆ ลงได้อย่างมาก จัดไปวัยรุ่น!

ตรรกะการเขียนโปรแกรม (Logic of Code)

ตรรกะการทำงานของเซ็นเซอร์จอดรถตัวนี้ใช้หลัก การเปรียบเทียบกับค่ากำหนด (Threshold Comparison) แบบง่ายๆ:

  1. อ่านระยะทาง: ดึงค่าจาก HC-SR04 มาเป็นหน่วยเซนติเมตร
  2. จัดหมวดหมู่ข้อมูล: ใช้ฟังก์ชันตรวจสอบเงื่อนไข (if-else หรือ switch-case) มาดูว่าค่าระยะทางที่วัดได้ตกอยู่ในช่วงไหน
    • ถ้าระยะทาง > 100 ซม.: ปิดไฟ LED ทุกดวง (ยังห่างโล่งๆ)
    • ถ้าระยะทาง 50-100 ซม.: ค่อยๆ เปิดไฟสีเขียวตามความใกล้ (เริ่มจับตาดูแล้วน้อง)
    • ถ้าระยะทาง 20-50 ซม.: เปิดไฟสีเหลือง และสั่งให้ออด (Buzzer) ร้องติ๊ง ต่องๆ ช้าๆ เป็นจังหวะ (ระวังตัวหน่อยนะ!)
    • ถ้าระยะทาง < 20 ซม.: เปิดไฟสีแดงเต็มที่ และให้ออดร้องติ๊งต่อเนื่องเตือนภัยฉุกเฉิน (ห้ามช็อตนะตัวนี้!)

เคล็ดลับสำคัญ: ใช้เทคนิค Non-blocking timing กับฟังก์ชัน millis() แทนที่จะใช้ delay() ในการควบคุมจังหวะเสียงออด วิธีนี้จะทำให้การวัดระยะทางของเซ็นเซอร์ยังทำงานได้ลื่นไหลและแม่นยำ ไม่สะดุดหรือค้างตอนที่ออดกำลังร้องอยู่ สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "circleelectronic"
category: ""
components:
  - "1x Arduino UNO"
  - "1x Male/Female Jumper Wires"
  - "1x Arduino Parking Sensor"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
description: "มาสร้างเซนเซอร์ช่วยจอดรถตึงๆ ด้วย Arduino และโมดูล HC-SR04 Ultrasonic Sensor กัน วัดระยะแบบแม่นยำ ใช้ Interrupt จัดการข้อมูล รับรองว่ารุ่นน้องทำได้แน่นอน!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/511163b8-4f4a-4ee6-b2e4-d260fd51ca70.ino"
encryptedPayload: "U2FsdGVkX1/nfKd2I97iJfVXcel3R92MOsuL3ca7qzRfPy3+TfkBJcPcH6qsOJcr+q1xELH+yZQ+wDyYwa0TJTab5t4BDPqhmQ1l7jewIAs="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/arduino-parking-sensor-dd03ef_cover.jpg"
lang: "en"
likes: 1
passwordHash: "3d73fe914824b0fb90af54b7b4055c6deff51fef243dec7d980955919bea15e6"
price: 1120
seoDescription: "Build an Arduino Parking Sensor using HC-SR04 Ultrasonic Sensor for accurate distance measurement."
tags:
  - "cars"
title: "โปรเจคเซนเซอร์จอดรถ Arduino งานง่ายแต่หล่อ!"
tools: []
videoLinks: []
views: 7284