B19 – Đo khoảng cách bằng cảm biến siêu âm (Sonar SEN136B5B)

Cảm biến siêu âm SEN136B5B là sản phẩm của hãng Seeedstudio. Nó có khả năng đo khoảng cách của vật thể đặt phía trước trong khoảng từ 3cm đến 400cm. Nó phát ra một chuỗi xung âm thanh và đo âm phản hồi. Cảm biến này đơn giản, chỉ có 3 chân, 2 chân cấp nguồn và 1 chân tín hiệu. Trong ví dụ này, bo Arduino sẽ phát ra một xung ngắn và dò tín hiệu phản hồi. Quãng thời gian của xung phản hồi tương ứng với thời gian âm thanh đi và bật trở lại. Dựa trên thông tin về vận tốc âm thanh, ta sẽ tính được quãng đường.

 

  • Chương trình ví dụ chỉ hiển thị giá trị trên máy tính.
  • Ta có thể bổ sung lệnh bật tắt đèn hoặc điều khiển thiết bị khác dựa trên giá trị đọc được
/* Ping))) Sensor

   This example code is in the public domain.

 */

// chân nối cảm biến
const int pingPin = 7;

void setup() {
  // truyền thông với máy tính
  Serial.begin(9600);
}

void loop() {
  // biến thời gian, khoảng cách theo in và cm
  // dùng biến long vì giá trị lớn, thay vì int
  long duration, inches, cm;

  // Tín hiệu PING tạo bởi xung cao trong ít nhất 2us
  // cấp 1 xung thấp trước hết để xóa tín hiệu cũ
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  // tín hiệu trở về trên cùng 1 chân
  pinMode(pingPin, INPUT);
  // đo thời gian xung phản hồi
  duration = pulseIn(pingPin, HIGH);

  // chuyển sang khoảng cách bằng 2 hàm
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);

  // hiển thị trên máy tính
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  // chờ 100ms
  delay(100);
}

long microsecondsToInches(long microseconds) {
  // Theo Parallax, cần gần 74 us/in để âm thanh đi và về
  // nên ta chia 2
  // //www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) {
  // Tốc độ âm thanh 340 m/s, cỡ 29 us/cm
  return microseconds / 29 / 2;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *