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

Giới thiệu

Trong tự động hóa hiện đại, nhiều khi bạn nhận thấy rằng hầu hết mọi ô tô đều có cảm biến đỗ xe lùi để quan sát mọi chướng ngại vật cản đường. Và, nếu bạn quan tâm đến robot và ngành công nghiệp ô tô, bạn đã hiểu rằng điều này là do cảm biến được nối dây trong robot, thường được biết đến với cái tên 'cảm biến siêu âm'. Về cơ bản, cảm biến siêu âm giúp phát hiện các tín hiệu xung hoặc sóng có cường độ cao mà con người không nghe được. Như chúng ta biết con người có thể nghe được dải tần từ 20Hz đến 20KHz. Cảm biến siêu âm có thể quan sát số đọc nhiều hơn phạm vi này. Bây giờ, trong hướng dẫn này, chúng ta sẽ tạo một "Mạch cảm biến đỗ xe lùi ô tô".

Cảm biến siêu âm hoạt động như thế nào? 

Cảm biến siêu âm ước tính khoảng cách của vật thể bằng cách tạo ra sóng siêu âm. Sau đó, nó biến những sóng âm thanh không nghe được đó thành tín hiệu điện. Do đó, cảm biến bao gồm hai phần tử là bộ phát và bộ thu. Máy phát phát ra sóng bằng tinh thể áp điện. Trong khi máy thu đối diện với sóng âm đó. Công thức đo khoảng cách thường được đưa ra là D=1/2 T*C.

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

No Components Qty
1 Arduino Uno R3 ATmega328 or Arduino Uno R3 ATmega328 SMD 1
2 USB Cable Type A to B 1
3 HC-SR04 Cảm Biến Siêu Âm 1
4 Còi Báo Động 42x16mm 3000Hz 3-24VDC 1
5 Jumper Wires / Dây cắm test board

Circuit Diagram

Bảng kết nối

Arduino  HC-SR04 Buzzer 
GND GND GND
5V Vcc  
D6 Echo  
D7 Trig  
D13   Positive (+)

Arduino Code

#define trigPin 7
#define echoPin 6
#define buzzer 13

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT); // chân trig sẽ phát tín hiệu
  pinMode(echoPin, INPUT); // chân echo sẽ nhận tín hiệu
  pinMode(buzzer, OUTPUT); 
}

void loop() {
  unsigned long duration; // biến đo thời gian
  int distance;           // biến lưu khoảng cách
  digitalWrite(trigPin, LOW); // tắt chân trig
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); // phát xung từ chân trig
  delayMicroseconds(10); // xung có độ dài 10 microSeconds
  digitalWrite(trigPin, LOW); // tắt chân trig

  /* Tính toán thời gian */
  // Đo độ rộng xung HIGH ở chân echo.
  duration = pulseIn(echoPin, HIGH);
  // Tính khoảng cách đến vật.
  distance = (duration / 2) / 29.1;

  if (distance < 10)
  {
    Buzzer();//dưới 10cm thì còi sẽ phát ra tiếng bíp
  }
  if (distance < 20)
  {
    Buzzer1();//dưới 20cm thì còi sẽ phát ra tiếng bíp
  }
  if (distance >= 50 || distance <= 0)
  {
    Serial.println("Ngoài phạm vi");
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(200);
}

void Buzzer()
{
    for (int a = 0; a < 3; a++)
    {
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(100);
    }
}
void Buzzer1()
{
    for (int a = 0; a < 3; a++)
    {
      digitalWrite(buzzer, HIGH);
      delay(150);
      digitalWrite(buzzer, LOW);
      delay(150);
    }
}

Nhận xét

Mới hơn Cũ hơn