กลับไปหน้ารวมไฟล์
distance-magic-ea0bd2.md

การทำให้สิ่งที่มองไม่เห็นเป็นภาพ: มิเตอร์ LED "Distance Magic"

คลื่นเสียงมีการสะท้อนอยู่รอบตัวเราตลอดเวลา ซึ่งมองไม่เห็นด้วยตาเปล่า โปรเจกต์ "Distance Magic" นี้จะนำคลื่นเหล่านี้มาสู่สเปกตรัมที่มองเห็นได้ ด้วยการสร้างมิเตอร์ LED แบบหลายขั้นที่ตอบสนองต่อการเข้าใกล้ทางกายภาพ ด้วยการเปลี่ยนระยะทางให้เป็นสัญญาณภาพ อุปกรณ์นี้จึงเป็นรากฐานสำคัญสำหรับงานด้าน Robotics, ระบบช่วยจอดรถอัตโนมัติ หรือการติดตั้งงานศิลปะแบบอินเทอร์แอคทีฟ

การระบุตำแหน่งด้วยเสียงสะท้อนแบบ Ultrasonic ที่แม่นยำ

หัวใจของโปรเจกต์คือ HC-SR04 Ultrasonic Sensor ซึ่งใช้หลักการเดียวกับโซนาร์ทางชีวภาพที่ค้างคาวและโลมาใช้:

  1. คลื่นเสียง: ขา Trigger ของเซนเซอร์จะปล่อยคลื่นเสียงความถี่สูง (40kHz) ออกมา
  2. คลื่นสะท้อนกลับ: คลื่นเสียงจะสะท้อนจากวัตถุและกลับมาที่ขา Echo
  3. การคำนวณเวลาในการเดินทาง: Arduino จะวัดระยะเวลา (ในหน่วย microseconds) ระหว่างการส่งและรับคลื่นสะท้อน โดยใช้ความเร็วเสียง (ประมาณ 343 m/s) ระยะทางจะถูกคำนวณด้วยสูตร: Distance = Time / 2 / 28.5

การวัดแบบเชิงเส้นและตรรกะแบบมีเงื่อนไข

โปรเจกต์นี้มี มิเตอร์ LED 5 ขั้น ที่แสดงผลระยะทางที่วัดได้ในรูปแบบภาพที่มีรายละเอียด ตรรกะนี้ถูกตั้งโปรแกรมโดยเพิ่มขึ้นทีละ 7 เซนติเมตร:

  • LED 1 (0-7cm): วัตถุอยู่ใกล้มาก
  • LED 2 (8-14cm): วัตถุกำลังเข้าใกล้
  • LED 3 (15-21cm): ตรวจจับระยะกลาง
  • LED 4 (22-28cm): เกณฑ์เตือนภัย
  • LED 5 (29-35cm): ตรวจพบวัตถุที่ระยะการตรวจสอบสูงสุด

LED แต่ละดวงได้รับการป้องกันด้วย ตัวต้านทาน 220-ohm และถูกควบคุมผ่าน digital pins (4-8) เฉพาะบน Arduino Uno

การดีบักแบบเรียลไทม์เชิงโต้ตอบ

นอกเหนือจาก LED ที่แสดงผลด้วยภาพ โปรเจกต์ยังใช้ Serial Monitor เพื่อให้ข้อมูลตัวเลขที่แม่นยำ ด้วยการส่งข้อมูลระยะทางที่แม่นยำในหน่วยเซนติเมตรกลับไปยัง PC ผู้สร้างสามารถปรับเทียบเซนเซอร์ได้อย่างมีประสิทธิภาพ หรือใช้ข้อมูลเพื่อกระตุ้นเหตุการณ์ที่ซับซ้อนยิ่งขึ้น เช่น การหยุดหุ่นยนต์ หรือการเปิดใช้งานการแจ้งเตือน IoT ระยะไกลผ่านการอัปเกรดด้วย ESP32 หรือ ESP8266

const int echo = 13;
const int trig = 12;
const int LED1 =8;
const int LED2 =7;
const int LED3 =6;
const int LED4 =5;
const int LED5 =4;
int duration = 0;
int distance = 0;
void setup()
{
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(trig,HIGH);
delayMicroseconds(1000);
digitalWrite(trig,LOW);
duration = pulseIn(echo,HIGH);
distance = (duration/2)/28.5;
Serial.begin(distance);
if(distance <=7)
{
digitalWrite(LED1,HIGH);
}
else
{
digitalWrite(LED1,LOW);
}
if(distance <=7)
{
digitalWrite(LED1,HIGH);
}
else
{
digitalWrite(LED1,LOW);
}
if(distance <=14)
{
digitalWrite(LED2,HIGH);
}
else
{
digitalWrite(LED2,LOW);
}
if(distance <=21)
{
digitalWrite(LED3,HIGH);
}
else
{
digitalWrite(LED3,LOW);
}
if(distance <=28)
{
digitalWrite(LED4,HIGH);
}
else
{
digitalWrite(LED4,LOW);
}
if(distance <=35)
{
digitalWrite(LED5,HIGH);
}
else
{
digitalWrite(LED5,LOW);
}
}

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

title: "Distance magic"
description: "Fun project"
author: "stt4236"
category: ""
tags:
  - "art"
  - "communication"
  - "internet of things"
views: 527
likes: 0
price: 1
difficulty: "Intermediate"
components:
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "5x 5 mm LED (Various Colors)"
  - "5x Resistor 220 ohm"
  - "1x Arduino Uno"
  - "1x Breadboard (generic)"
  - "1x Jumper wires (generic)"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "98e81f3e7e6cd0237f75dc53c801b70117602fd944b614bccfd90ec9f84040d7"
encryptedPayload: "U2FsdGVkX1/Gg9oqQg4tkKbh+wRGVfJStmFag3bttLvJ3uL+Eom1okT7PbtHMs3joRntBX46joYtySc2anv9cLuN4tL94hB7MDNiyhzNgck="
seoDescription: "Explore Distance magic, a fun Arduino project using mmWave Sensor and ESP32 for precise distance measurement and automation."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/distance-magic-ea0bd2_cover.jpg"
lang: "th"