ใบงานที่ 4 การใช้งานเซนเซอร์วัดระยะทาง HC-SR04
ผู้จัดทำ
นางสาวจีรพร ศรีบุญ 006
นางสาวพิมพ์พิชชา แสงแจ่ม 037
ทฤษฎี HC-SR04
HC-SR04 เป็นเซนเซอร์โมดูลสำหรับตรวจจับวัตถุและวัดระยะทางแบบไม่สัมผัส [1-2] โดยใช้คลื่นอัลตราโซนิก ซึ่งเป็นคลื่นเสียงความถี่สูงเกินกว่าการได้ยินของมนุษย์ วัดระยะได้ตั้งแต่ 2 – 400 เซนติเมตร หรือ 1 – 156 นิ้ว สามารถต่อใช้งานกับไมโครคอนโทรลเลอร์ได้ง่าย ใช้พลังงานต่ำ เหมาะกับการนำไปประยุกต์ใช้งานด้านระบบควบคุมอัตโนมัติ หรืองานด้านหุ่นยนต์ หลักการทำงาน จะเหมือนกันกับการตรวจจับวัตถุด้วยเสียงของค้างคาว ตามรูปที่ 1 โดยจะประกอบไปด้วยตัว รับ-ส่ง อัลตราโซนิก ตัวส่งจะส่งคลื่นความถี่ 40 kHz ออกไปในอากาศด้วยความเร็วประมาณ 346 เมตรต่อวินาที และตัวรับจะคอยรับสัญญาณที่สะท้อนกลับจากวัตถุ เมื่อทราบความเร็วในการเคลื่อนที่ของคลื่น, เวลาที่ใช้ในการเดินทางไป-กลับ (t) ก็จะสามารถคำนวณหาระยะห่างของวัตถุ (S) ได้จาก
S = 346 × 0.5t (1)
เพื่อให้การคำนวณหาระยะเป็นไปด้วยความง่าย โมดูลเซนเซอร์นี้จึงได้ประมวลผลให้เรียบร้อยแล้ว และส่งผลลัพธ์ของการคำนวณเป็นสัญญาณพัลส์ที่มีความกว้างสัมพันธ์กับระยะทางที่วัดได้
อุปกรณ์ที่ใช้
1.โฟโต้บอร์ด
2.สายอัปโหลด
3.บอร์ด Arduino
4.หลอด LED 6 ดวง
5.HC-SR04
6.สายแพผู้-ผู้
7.ตัวต้านทาน
รูปวงจร
Download คลิก
คำอธิบาย
ถ้าระยะทางตั้งแต่ 11-20 ซม. LED สีเหลืองติด 2 ดวง(สีเขียว ยังคงติด)
ถ้าระยะทางตั้งแต่ 6-10 ซม. LED สีแดงติด 2 ดวง(สีเขียวและสีเหลือง ยังคงติด)
ถ้าระยะ น้อยกว่า 6 ให้ LE กระพริบทั้ง 6 ดวง (ติด 0.3 วินาที ดับ 0.3 วินาที)
Code
const int trigPin = 9;
const int echoPin = 10;
int LED1=3;
int LED2=4;
int LED3=5;
int LED4=6;
int LED5=7;
int LED6=8;
float duration, distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode (LED1,OUTPUT);
pinMode (LED2,OUTPUT);
pinMode (LED3,OUTPUT);
pinMode (LED4,OUTPUT);
pinMode (LED5,OUTPUT);
pinMode (LED6,OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration*.0343)/2;
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
if(distance <= 30)
{
digitalWrite (LED1,HIGH);
digitalWrite (LED2,HIGH);
}
if(distance > 30)
{
digitalWrite (LED1,LOW);
digitalWrite (LED2,LOW);
}
if(distance <= 20)
{
digitalWrite (LED3,HIGH);
digitalWrite (LED4,HIGH);
}
if(distance > 20)
{
digitalWrite (LED3,LOW);
digitalWrite (LED4,LOW);
}
if(distance <= 10)
{
digitalWrite (LED5,HIGH);
digitalWrite (LED6,HIGH);
}
if(distance > 10)
{
digitalWrite (LED5,LOW);
digitalWrite (LED6,LOW);
}
if(distance <= 6)
{
digitalWrite (LED1,HIGH);
digitalWrite (LED2,HIGH);
digitalWrite (LED3,HIGH);
digitalWrite (LED4,HIGH);
digitalWrite (LED5,HIGH);
digitalWrite (LED6,HIGH);
delay(300);
digitalWrite (LED1,LOW);
digitalWrite (LED2,LOW);
digitalWrite (LED3,LOW);
digitalWrite (LED4,LOW);
digitalWrite (LED5,LOW);
digitalWrite (LED6,LOW);
delay(300);
}
delay(300);
}
Download คลิก
วิดีโอ


ความคิดเห็น
แสดงความคิดเห็น