อุปกรณ์ที่ต้องใช้มีดังนี้
1. Arduino UNO R3 - Made in italy
2. Ultrasonic Sensor HC-SR04
3. Jumper (F2M) cable wire 40pcs 10 cm 2.54mm Female to Male
Ultrasonic ranging module HC-SR04
โมดูลอัลตร้าโซนิคนี้เป็นอุปกรณ์ใช้วัดระยะทางโดยไม่ต้องมีการสัมผัสกับตำแหน่งที่ต้องการวัด วัดได้ตั้งแต่ 2 cm ถึง 400 cm โดยส่งสัญญาณอัลตร้าโซนิคความถี่ 40 kHz ไปที่วัตถุที่ต้องการวัดและรับสัญญาณที่สะท้อนกลับมา พร้อมทั้งจับเวลาเพื่อนำมาใช้ในการคำนวณระยะทาง
Ultrasonic HC-SR04 เป็นเซ็นเซอร์ที่ใช้วัดระยะโดยใช้ sonar ให้การหาระยะของตำแหน่งวัตถุ
Features:
ใช้แรงดันประมาณ :+5V DC
Quiescent Current : <2mA
ทำงานโดยใช้กระแสประมาณ: 15mA
ความกว้างเชิงมุมในการวัด: <15°
ช่วงการวัดระยะทาง : 2cm – 400 cm/1" - 13ft
ความละเอียด : 0.3 cm
Measuring Angle: 30 degree
Trigger Input Pulse width: 10uS
Dimension: 45mm x 20mm x 15mm
หลักการทำงาน
โมดูล HC-SR04 เป็นอุปกรณ์อิเล็กทรอนิกส์ สำหรับวัดระยะห่างด้วยคลื่นอัลตราโซนิค (ใช้คลื่นเสียงความถี่ ประมาณ 40kHz) มีสองส่วนหลักคือ ตัวส่งคลื่นที่ทำหน้าที่สร้างคลื่นเสียงออกไปในการวัดระยะแต่ละครั้ง ("Ping") แล้วเมื่อไปกระทบวัตถุหรือสิ่งกีดขวาง คลื่นเสียงถูกสะท้อนกลับมายังตัวรับแล้วประมวลผลด้วยวงจรอิเล็กทรอนิกส์ภายในโมดูล ถ้าจับเวลาในการเดินทางของคลื่นเสียงในทิศทางไปและกลับ และถ้าทราบความเร็วเสียงในอากาศ ก็จะสามารถคำนวณระยะห่างจากวัตถุกีดขวางได้
ต่อวงจรตามรูป
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAlGvAhXOQf5tiGjOnudjhXaGLCJR95nfZ2JJHUBg0_LB7Y-QNTiSIbhImYpblyajXQcyDOik9URpIGQUsW5wuNRhGhllg2mZgI4LwW3rJJ0l_hyphenhyphenXTZkUnKN6E9szP2JkLam5qEJnN1M6v/s1600/sr04-uno-r3.jpg)
ทดสอบการทำงาน
เปิดโปรแกรม Arduino (IDE) เขียนโค้ด ดังนี้
จากนั้นให้ทดลอง Verify / Compile
จะขึ้น Error ว่า ค้าหาเฮดเดอร์ไฟล์ Newping.h ไม่พบ (เป็นเพราะเรายังไม่ได้เพิ่ม ไลบรารี่ NewPing)
จากนั้นให้ทำการเพิ่ม ไลบรารี่ NewPing ให้กับ Arduino (IDE) ของเรา ตามรูป
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKOBwOAFtZ8tU7BZrbdQ8OqIzjVRN-1qw1BdqkW5qzjIhtTcXe08ojrl_lH5092EeLljxhR6AEmxtd-2exea3B-8-YAFgt9b37EFrGVTc4F36EmjZ35bix2ctnnWMxO-SpjJrNN5JRTW9V/s1600/ide-2.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNP8kFsU-Xz5f6y1A4nYTB_nOq2L1hcuCtIQq3JsbjJe0F5lKNBha5qly2HI6B_RgdPwL_5H6RzSK9eu9qtSSfuAvxXc6RH8g5t4PPv1A_b6y5eRFCpYYepb1TDXySaHLNxrzUGbyQrBxl/s1600/ide-3.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDW6dW0YJ5wmvwPldoAvqall4ll_Wxr1_ZJPnC3J0sv3eCJL3W_eehN7u8dYgzLh1pCt0OhPA1T8vVLwXlKzHNVSxmTyBetvR4-jJ6q72dMxNJc2sooC6nmaqLyINcajGXsoPfkSZznlf6/s1600/ide-5.jpg)
จากนั้นให้ Upload ไปยัง บอร์ด Arduino UNO R3
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-bdh7jP4ulprrhg0DoioEe2qJB4gal2pOWFqG3hwRCOjyQaB_HCzq3RO4V0UCC9ngFsY0UYUUvvB6GQgHedOo6wPvfeJIu6F4KsuD5H9g06kM9roE7MEXrGEJNJZ-x0JPcpl-ADW2SKVY/s1600/ide-7.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggCdeigfnqk6Y0jmZT7uxLnGPduTnxpzKNjNBTE9KIMNLiRoVsvgDRDWwr-dPkeDfwZxUC5GlafBDkezc9DV1RcDfTyjwK9FTM0NvlqsACOdQOfi4-MdeoZeR-Y9b_86Otf3ZdO2J3WuLg/s1600/ide-9.jpg)
1. Arduino UNO R3 - Made in italy
2. Ultrasonic Sensor HC-SR04
3. Jumper (F2M) cable wire 40pcs 10 cm 2.54mm Female to Male
Ultrasonic ranging module HC-SR04
โมดูลอัลตร้าโซนิคนี้เป็นอุปกรณ์ใช้วัดระยะทางโดยไม่ต้องมีการสัมผัสกับตำแหน่งที่ต้องการวัด วัดได้ตั้งแต่ 2 cm ถึง 400 cm โดยส่งสัญญาณอัลตร้าโซนิคความถี่ 40 kHz ไปที่วัตถุที่ต้องการวัดและรับสัญญาณที่สะท้อนกลับมา พร้อมทั้งจับเวลาเพื่อนำมาใช้ในการคำนวณระยะทาง
Ultrasonic HC-SR04 เป็นเซ็นเซอร์ที่ใช้วัดระยะโดยใช้ sonar ให้การหาระยะของตำแหน่งวัตถุ
Features:
ใช้แรงดันประมาณ :+5V DC
Quiescent Current : <2mA
ทำงานโดยใช้กระแสประมาณ: 15mA
ความกว้างเชิงมุมในการวัด: <15°
ช่วงการวัดระยะทาง : 2cm – 400 cm/1" - 13ft
ความละเอียด : 0.3 cm
Measuring Angle: 30 degree
Trigger Input Pulse width: 10uS
Dimension: 45mm x 20mm x 15mm
หลักการทำงาน
โมดูล HC-SR04 เป็นอุปกรณ์อิเล็กทรอนิกส์ สำหรับวัดระยะห่างด้วยคลื่นอัลตราโซนิค (ใช้คลื่นเสียงความถี่ ประมาณ 40kHz) มีสองส่วนหลักคือ ตัวส่งคลื่นที่ทำหน้าที่สร้างคลื่นเสียงออกไปในการวัดระยะแต่ละครั้ง ("Ping") แล้วเมื่อไปกระทบวัตถุหรือสิ่งกีดขวาง คลื่นเสียงถูกสะท้อนกลับมายังตัวรับแล้วประมวลผลด้วยวงจรอิเล็กทรอนิกส์ภายในโมดูล ถ้าจับเวลาในการเดินทางของคลื่นเสียงในทิศทางไปและกลับ และถ้าทราบความเร็วเสียงในอากาศ ก็จะสามารถคำนวณระยะห่างจากวัตถุกีดขวางได้
ต่อวงจรตามรูป
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAlGvAhXOQf5tiGjOnudjhXaGLCJR95nfZ2JJHUBg0_LB7Y-QNTiSIbhImYpblyajXQcyDOik9URpIGQUsW5wuNRhGhllg2mZgI4LwW3rJJ0l_hyphenhyphenXTZkUnKN6E9szP2JkLam5qEJnN1M6v/s1600/sr04-uno-r3.jpg)
UNO <--> HC-SR04
VCC <--> VCC
GND <--> GND
D12 <--> Trig
D13 <--> Echo
ทดสอบการทำงาน
เปิดโปรแกรม Arduino (IDE) เขียนโค้ด ดังนี้
#include <NewPing.h>
NewPing sonar(12, 13); //ให้ Pin 12 และ 13 เป็นขาของเซนเซอร์ เรียกใช้งานคำสั่งจาก Library
long cm; //ประกาศตัวแปร cm ให้เป็นข้อมูลชนิดจำนวนเต็ม -2147483648 ถึง 2147483649
void setup()
{
{
Serial.begin(9600); //ตั้งค่าความเร็วในการรับ-ส่งข้อมูล ค่ามาตรฐาน คือ 9600
}
void loop()
{
{
delay(50);
cm = sonar.ping_cm(); //รับค่าจาก Library NewPing หน่วยเป็น เซ็นติเมตร
Serial.print(cm); //พิมพ์ค่าที่ได้ออกมา
Serial.print(" cm."); //พิมพ์ cm ต่อท้าย ค่าที่ได้รับ
Serial.print("\n");
}
จากนั้นให้ทดลอง Verify / Compile
จะขึ้น Error ว่า ค้าหาเฮดเดอร์ไฟล์ Newping.h ไม่พบ (เป็นเพราะเรายังไม่ได้เพิ่ม ไลบรารี่ NewPing)
ไลบรารี่ NewPing คือ ไลบรารี่ ฟังก์ชัน ที่มีผู้พัฒนาเตรียมพร้อมไว้ให้เราแล้ว โดยให้ไปดาวน์โหลด ไลบรารี่ NewPing ได้ที่
https://bitbucket.org/teckel12/arduino-new-ping/downloads
https://bitbucket.org/teckel12/arduino-new-ping/downloads
จากนั้นให้ทำการเพิ่ม ไลบรารี่ NewPing ให้กับ Arduino (IDE) ของเรา ตามรูป
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKOBwOAFtZ8tU7BZrbdQ8OqIzjVRN-1qw1BdqkW5qzjIhtTcXe08ojrl_lH5092EeLljxhR6AEmxtd-2exea3B-8-YAFgt9b37EFrGVTc4F36EmjZ35bix2ctnnWMxO-SpjJrNN5JRTW9V/s1600/ide-2.jpg)
เลือกไฟล์ ไลบรารี่ NewPing .ZIP ที่เรา ดาวน์โหลดมาอยู่ในคอมพิวเตอร์ของเรา จากนั้นคลิก Open โปรแกรม จะเพิ่ม ไลบรารี่ NewPing เข้าสู่ Arduino (IDE) ของเรา
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNP8kFsU-Xz5f6y1A4nYTB_nOq2L1hcuCtIQq3JsbjJe0F5lKNBha5qly2HI6B_RgdPwL_5H6RzSK9eu9qtSSfuAvxXc6RH8g5t4PPv1A_b6y5eRFCpYYepb1TDXySaHLNxrzUGbyQrBxl/s1600/ide-3.jpg)
เมื่อเข้าดูที่ Include Library จะพบ ไลบรารี่ NewPing เพิ่มเข้ามาด้านล่างสุด
(สามารถใช้วิธีการเดียวกันนี้ ในการ การเพิ่ม ไลบรารี่ ฟังก์ชัน อื่นๆ ได้เช่นกัน )
(สามารถใช้วิธีการเดียวกันนี้ ในการ การเพิ่ม ไลบรารี่ ฟังก์ชัน อื่นๆ ได้เช่นกัน )
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDW6dW0YJ5wmvwPldoAvqall4ll_Wxr1_ZJPnC3J0sv3eCJL3W_eehN7u8dYgzLh1pCt0OhPA1T8vVLwXlKzHNVSxmTyBetvR4-jJ6q72dMxNJc2sooC6nmaqLyINcajGXsoPfkSZznlf6/s1600/ide-5.jpg)
จากนั้นให้ Upload ไปยัง บอร์ด Arduino UNO R3
เมื่อ Upload เสร็จ ให้เปิด Serial Monitor ขึ้นมา โดยไปที่ Tools -> Serial Monitor
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-bdh7jP4ulprrhg0DoioEe2qJB4gal2pOWFqG3hwRCOjyQaB_HCzq3RO4V0UCC9ngFsY0UYUUvvB6GQgHedOo6wPvfeJIu6F4KsuD5H9g06kM9roE7MEXrGEJNJZ-x0JPcpl-ADW2SKVY/s1600/ide-7.jpg)
ทดลอง เอามือ หรือ วัตถุอื่นๆ เครื่อนไหว ขึ้นลง หน้าจุดรับสัญญาณ อัลตร้าโซนิค HC-SR04
ที่ Serial Monitor จะแสดงค่า ระยะความห่างของมือเรากับ HC-SR04 หน่วยเป็น เซ็นติเมตร (cm) ตามที่เราเครื่อนไหว แสดงว่า โมดูลอัลตร้าโซนิค HC-SR04 ของเรา นั้นพร้อมใช้งานแล้วครับ
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggCdeigfnqk6Y0jmZT7uxLnGPduTnxpzKNjNBTE9KIMNLiRoVsvgDRDWwr-dPkeDfwZxUC5GlafBDkezc9DV1RcDfTyjwK9FTM0NvlqsACOdQOfi4-MdeoZeR-Y9b_86Otf3ZdO2J3WuLg/s1600/ide-9.jpg)