Menu
CoddyTech

Cảm biến đỗ xe: khoảng cách

Thuộc phần Dự án trong hành trình Arduino của Coddy. Bài học 9 trên 24.

Ô tô có cảm biến đỗ xe phát tiếng bíp nhanh hơn khi bạn lùi về phía tường. Dự án này tạo một hệ thống như vậy: cảm biến khoảng cách (distance sensor), ba đèn cảnh báo, một còi và một màn hình, tất cả đã được nối dây sẵn. Bước đầu tiên là đo khoảng cách.

Như trong bài học Màn hình và cảm biến, một xung dài 10 micro giây trên TRIG gửi tín hiệu, còn pulseIn(echoPin, HIGH) trả về khoảng thời gian ECHO ở mức HIGH, tính bằng micro giây. Âm thanh mất khoảng 58 micro giây để đi một centimet rồi quay lại, vì vậy khoảng cách tính bằng cm là thời gian đó chia cho 58 (tương tự như duration * 0.034 / 2). Gộp tất cả vào một hàm:

long readDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration / 58;
}

Đo khoảng mười lần mỗi giây: cảm biến cần nghỉ một chút giữa các lần gửi tín hiệu, nếu không tiếng vọng muộn từ lần trước có thể bị nhầm là tiếng vọng mới.

challenge icon

Thử thách

Dễ

Cảm biến có TRIG ở chân 9 và ECHO ở chân 10:

  • viết readDistance(): xung kích hoạt, pulseIn() và thời gian chia cho 58
  • trong loop(), in khoảng cách bằng Serial.println() sau mỗi 100 ms

Nhấn Chạy, kéo khoảng cách trên cảm biến, rồi nhấn Kiểm tra.

Tự làm thử

// Cảm biến đo khoảng cách
const int trigPin = 9;
const int echoPin = 10;

// Phát xung ping và trả về khoảng cách tính bằng cm.
long readDistance() {

}

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // In ra khoảng cách, rồi chờ 100 ms

}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dự án

Tự luyện tập: Playground Arduino