#include <LiquidCrystal.h>
const unsigned int TRIG_PIN = 13;
const unsigned int ECHO_PIN = 12; // Đổi chân ECHO để tránh trùng với LCD
const unsigned int BAUD_RATE = 9600;
// Khởi tạo LCD
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(BAUD_RATE);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Khoang cach:");
}
void loop() {
// Phát tín hiệu từ Trig
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Đọc tín hiệu từ Echo với timeout 50ms
const unsigned long duration = pulseIn(ECHO_PIN, HIGH, 50000);
int distance = duration / 29 / 2;
Serial.print("Duration: ");
Serial.println(duration); // In ra Serial để debug
lcd.setCursor(0, 1);
if (duration == 0) {
Serial.println("Warning: No pulse received from sensor!");
lcd.print("Sensor Error "); // Hiển thị lỗi
} else {
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Hiển thị lên LCD
lcd.print("
"); // Xóa nội dung cũ
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(" cm");
}
delay(500);
}