int Echo_Pin = 6; // กำหนดขา Echo ของโมดูล Ultrasonic วัดระยะทาง
int Trig_Pin = 7; // กำหนดขา Trig ของโมดูล Ultrasonic วัดระยะทาง
long Duration, DISTANCE; // ประกาศตัวแปร duration, distance ไว้สำหรับคำนวณระยะทาง
int Buzzer_Pin = 2;
int Power_Pin = 9;
void setup()
{
pinMode(Power_Pin, OUTPUT);
delay(500);
digitalWrite(Power_Pin, HIGH);
delay(500);
pinMode(Trig_Pin, OUTPUT);
pinMode(Echo_Pin, INPUT);
pinMode(Buzzer_Pin, OUTPUT);
delay(1000);
digitalWrite(Buzzer_Pin, LOW);
delay(2000);
Serial.begin(9600);
Serial.println("########################################");
Serial.println("# #");
Serial.println("# Arduino Start #");
Serial.println("# #");
Serial.println("########################################");
Serial.println(">>>>> Arduino Ultrasonic Start <<<<<");
}
void loop()
{
digitalWrite(Trig_Pin, LOW); // กระบวนการ Trig High Low โมดูล Ultrasonic เพื่อเริ่มวัดระยะทาง
delayMicroseconds(2);
digitalWrite(Trig_Pin, HIGH);
delayMicroseconds(5);
digitalWrite(Trig_Pin, LOW);
Duration = pulseIn(Echo_Pin, HIGH); // วัดค่าเวลาคลื่นส่งไปกลับใส่ตัวแปร distance
DISTANCE = microsecondsToCentimeters(Duration); // คำนวณระยะทางเก็บใส่ตัวแปร distance
Serial.print("Distance: ");
Serial.print(DISTANCE);
if (DISTANCE > 2 && DISTANCE < 50)
{
Serial.print(" cm - Object --> DETECT\n");
digitalWrite(Buzzer_Pin, HIGH);
}
else
{
Serial.println(" cm - Object -->");
digitalWrite(Buzzer_Pin, LOW);
}
delay(100);
}
long microsecondsToCentimeters(long microseconds)
{
// ความเร็วเสียงในอากาศประมาณ 340 เมตร/วินาที หรือ 29 ไมโครวินาที/เซนติเมตร
// ระยะทางที่ส่งเสียงออกไปจนเสียงสะท้อนกลับมาสามารถใช้หาระยะทางของวัตถุได้
// เวลาที่ใช้คือ ระยะทางไปกลับ ดังนั้นระยะทางคือ ครึ่งหนึ่งของที่วัดได้
return microseconds / 29 / 2;
}