Trang chủ Điện - Điện tửArduinoMạch cảm biến lùi đỗ xe ô tô / Car Reverse Parking Sensor Circuit

Mạch cảm biến lùi đỗ xe ô tô / Car Reverse Parking Sensor Circuit

bởi Admin
10 lượt xem 3 Phút đọc

Giới thiệu

Mạch cảm biến lùi đỗ xe ô tô là một hệ thống điện tử giúp phát hiện khoảng cách giữa xe và các vật thể xung quanh khi lùi. Hệ thống này cung cấp thông tin qua âm thanh hoặc hiển thị, giúp tài xế tránh va chạm.

Dưới đây là hướng dẫn thiết kế và nguyên lý hoạt động cơ bản của một mạch cảm biến lùi đỗ xe ô tô:

Thành phần chính

  1. Cảm biến siêu âm (Ultrasonic Sensor):
    • HC-SR04 là cảm biến phổ biến để đo khoảng cách.
    • Hoạt động bằng cách phát ra sóng siêu âm và đo thời gian sóng phản xạ trở lại.
  2. Vi điều khiển (Microcontroller):
    • Arduino Uno, Nano hoặc bất kỳ vi điều khiển nào khác có thể xử lý tín hiệu từ cảm biến và điều khiển đầu ra.
  3. Buzzer:
    • Cung cấp cảnh báo âm thanh khi khoảng cách giảm.

Nguyên lý hoạt động

  • Cảm biến siêu âm:
    • Khi lùi xe, cảm biến phát sóng siêu âm qua chân Trig.
    • Sóng va vào vật cản và phản xạ trở lại.
    • Cảm biến nhận sóng qua chân Echo và đo thời gian giữa lúc phát và nhận.
    • Dựa vào thời gian, tính toán khoảng cách theo công thức:
       

  • Buzzer:
    • Khi khoảng cách nhỏ hơn giá trị ngưỡng (ví dụ: 20cm), buzzer kêu báo hiệu.
  • Hiển thị (tùy chọn):
    • Khoảng cách hiển thị lên màn hình để cung cấp thông tin trực quan.

Yêu cầu phần cứng

Sơ đồ mạch

Bảng kết nối

Arduino HC-SR04Buzzer 
GNDGNDGND
5VVcc 
D6Echo 
D7Trig 
D13 Positive (+)

Arduino Code

#define trigPin 7
#define echoPin 6
#define buzzer 13
void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT); // chân trig phát tín hiệu
  pinMode(echoPin, INPUT);  // chân echo nhận tín hiệu
  pinMode(buzzer, OUTPUT);  // chân điều khiển buzzer
}
void loop() {
  unsigned long duration; // biến lưu thời gian phản hồi
  float distance;         // biến lưu khoảng cách
  // Phát xung từ chân trig
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Đo thời gian xung HIGH từ chân echo
  duration = pulseIn(echoPin, HIGH);
  // Tính khoảng cách (cm)
  // Công thức: Distance = (Time x Speed of Sound) / 2
  // Tốc độ âm thanh = 343 m/s = 0.0343 cm/µs
  distance = (duration * 0.0343) / 2;
  // Xử lý theo khoảng cách
  if (distance > 0 && distance < 10) {
    Buzzer(100); // Phát âm thanh ngắn hơn khi khoảng cách rất gần
  } 
  else if (distance >= 10 && distance < 20) {
    Buzzer(200); // Phát âm thanh dài hơn khi khoảng cách xa hơn
  } 
  else if (distance >= 50 || distance <= 0) {
    Serial.println("Ngoài phạm vi"); // Ngoài khoảng đo của cảm biến
  } 
  else {
    Serial.print("Khoảng cách: ");
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(200); // Trễ trước khi đọc tiếp
}
// Hàm điều khiển buzzer
void Buzzer(int delayTime) {
  for (int i = 0; i < 3; i++) {
    digitalWrite(buzzer, HIGH);
    delay(delayTime);
    digitalWrite(buzzer, LOW);
    delay(delayTime);
  }
}

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.