int t_p = 5; // D5 Sensor
int e_p = 18; // D18 Sensor
int buzzerPin = 17; // D17 Buzzer
int ledPin = 16; // D16 LED
long durn; // Keep Durn
float dist_cm; // Keep dist_cm
void setup() {
Serial.begin(115200); //set timer
pinMode(buzzerPin, OUTPUT); // Set buzzer pin as output
pinMode(ledPin, OUTPUT); // Set LED pin as output
pinMode(t_p, OUTPUT); // Set trigger pin as output
pinMode(e_p, INPUT); // Set echo pin as input
}
void loop() {
digitalWrite(t_p, LOW); // Ensure trigger pin is low
delayMicroseconds(2); // Wait for 2 microseconds
digitalWrite(t_p, HIGH); // Set trigger pin high
delayMicroseconds(10); // Wait for 10 microseconds
digitalWrite(t_p, LOW); // Set trigger pin low again
durn = pulseIn(e_p, HIGH); // Measure duration of pulse on echo pin pulselnใช้ในการวัดความยาวของช่วงเวลาที่สัญญาณอยู่ในสถานะที่กำหนดไว้
dist_cm = durn * 0.0343 / 2; // Calculate distance in cm
Serial.print("Distance: "); // Print "Distance: " to serial
Serial.println(dist_cm); // Print the distance in cm to serial
if (dist_cm < 100) { // If distance is less than 100 cm
tone(buzzerPin, 1000); // Activate buzzer at 1000 Hz
digitalWrite(ledPin, HIGH); // Turn on the LED
} else {
noTone(buzzerPin); // Deactivate buzzer
digitalWrite(ledPin, LOW); // Turn off the LED
}
delay(1000); // Wait for 1 second before next measurement
}