บทนำ
ในโปรเจกต์ของพี่หลายๆ งาน พี่ใช้ Ultrasonic Distance [Sensor](https://s.shopee.co.th/7VBG2rX65j) นี่แหละ มันเป็นเครื่องมือที่โคตรมีประโยชน์และจำเป็นมาก แต่การเขียนโค้ดสำหรับมันเนี่ย... มันซ้ำซาก, น่าเบื่อ, ยาวเหยียด (ใส่คำด่าอะไรก็ได้ลงไป) นี่คือตัวอย่างวิธี "ปกติ" ที่เราใช้เซ็นเซอร์วัดระยะกัน
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
Serial.println(duration);
ดูไม่หล่อเลยใช่มั้ย? พี่รู้แหละ
แต่ถ้าใช้ไลบรารี่ของพี่ EZDist นี่ น้องจะย่อมันให้เหลือแค่บรรทัดเดียวได้เลย! ดูตัวอย่างเบื้องต้น:
Serial.println(EZDist.raw());
แค่นั้นจบ จริงๆ นะ แค่บรรทัดเดียวแต่ดูเท่โคตรๆ
นี่แค่เป็น หนึ่ง ในหลายสิ่งมหัศจรรย์ที่ไลบรารี่นี้ทำได้
ติดตั้ง
1. เปิด [Arduino](https://s.shopee.co.th/7fUgFAWSki) IDE ขึ้นมา
2. ดาวน์โหลด GitHub repository นี้เป็นไฟล์ ZIP หรือโฟลเดอร์

3. บนแถบด้านบน เลือก Sketch > Include > Library > Add.ZIP Library แล้วเลือกโฟลเดอร์ที่ดาวน์โหลดมา
เย้! ตอนนี้น้องมีไลบรารี่อยู่ในเครื่องแล้ว!
วิธีใช้
เหมือนไลบรารี่ทั่วไปเลย น้องต้อง include มันที่ต้นสเก็ตช์
#include <EZDist.h>
ทีนี้ น้องต้องสร้าง instance ของคลาสด้วยหมายเลขพิน ฟังดูเทพแต่ความจริงแค่หมายถึง "ใส่อันนี้ ก่อน setup()" ของน้อง:
EZDist EZDist(trigPin, echoPin);
สำหรับการพิมพ์ค่าระยะ เริ่มเปิด Serial Monitor ใน setup()
void setup() {
Serial.begin(9600);
}
ทีนี้ก็พิมพ์ข้อมูลได้เลย
void loop() {
Serial.println(EZDist.raw());
}
เจ๋ง! ตอนนี้เรามีค่าระยะบน Serial Monitor แล้ว แต่ว่าเราอยากได้ค่าเป็นนิ้วหรือเซนติเมตรใช่มั้ย? อาจจะนะ
void loop() {
Serial.println("Inches: " + String(EZDist.inch()) + ", Centimeters: " + String(EZDist.cm()));
}
พูดง่ายๆ ก็คือ ใช้ EZDist.inch() เพื่อได้ค่าระยะเป็นนิ้ว และใช้ EZDist.cm() เพื่อได้ค่าระยะเป็นเซนติเมตร ถ้าอยากได้ค่า raw ก็ใช้ EZDist.raw()
โค้ดสุดท้ายจะหน้าตาแบบนี้:
#include <EZDist.h>
int trigPin = 12;
int echoPin = 11;
EZDist EZDist(trigPin, echoPin);
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(EZDist.cm()); // ถ้าอยากได้หน่วย CM
}
เห็นมั้ย โค้ดเรียบง่าย สวยงาม และมีประสิทธิภาพ
ตัวอย่าง
ตัวอย่างคือวิธีเรียนรู้ที่ดีที่สุด (สำหรับพี่นะ)
ถ้าอยากดูตัวอย่าง ให้ไปที่ File > Examples > EZDist แล้วเลือกตัวอย่างที่ต้องการ
ซอร์สโค้ดไลบรารี่
ดูซอร์สโค้ดของไลบรารี่และสิ่งเจ๋งๆ อื่นๆ ได้ที่ลิงก์นี้
รายงานปัญหาและเสนอแนะได้ที่ลิงก์นี้
อยากช่วยพัฒนาทำให้ไลบรารี่นี้เจ๋งขึ้นไปอีก? Fork repository บน GitHub แล้วเปิด pull request ได้ที่ลิงก์นี้