// ตัวอย่าง การเขียนโปรแกรมบอร์ด Multi Function - Arduino uno r3
// LAB29 HC-SR04 LCD I2C
// ครูวิบูลย์ กัมปนาวราวรรณ เสารร์ 29 มิถุนายน 2567
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27 , 16,2);
const byte trig = 5;
const byte echo = 4;
int traveltime;
int distance;
int t =0;
int ledPin = 13; // ตั้งค่าขา LED
int buzzerPin = 12;; // ตั้งค่าขา LED
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
lcd.init();
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
traveltime = pulseIn(echo, HIGH);
distance = (traveltime * 0.0343)/2;
if(t == 0){
lcd.clear();
lcd.print("Distance in cm :");
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(" CM");
delay(500);
}
// ควบคุม LED ตามระยะทาง
if (distance > 30) {
digitalWrite(ledPin, HIGH); // LED สว่างเมื่อระยะทางมากกว่า 30 เซนติเมตร
tone(buzzerPin, 1000, 0);
delay(100);
} else {
digitalWrite(ledPin, LOW); // LED ดับเมื่อระยะทางน้อยกว่าหรือเท่ากับ 30 เซนติเมตร
noTone(buzzerPin);
}
}