norr@manorshi.com         +86-519-89185720
1
Trung tâm tin tức

Làm thế nào để sử dụng cảm biến siêu âm với Arduino?

Lượt xem: 164     Tác giả: Grace Thời gian xuất bản: 26-07-2021 Nguồn gốc: Địa điểm

nút chia sẻ facebook
nút chia sẻ twitter
nút chia sẻ dòng
nút chia sẻ wechat
nút chia sẻ Linkedin
nút chia sẻ Pinterest
nút chia sẻ whatsapp
nút chia sẻ kakao
nút chia sẻ Snapchat
nút chia sẻ telegram
chia sẻ nút chia sẻ này

Cách sử dụng cảm biến siêu âm với Arduino: Hướng dẫn HC-SR04

các Cảm biến siêu âm HC-SR04 là một trong những mô-đun đo khoảng cách phổ biến nhất cho các dự án Arduino. Nó được sử dụng rộng rãi trong robot tránh chướng ngại vật, cảm biến đỗ xe, phát hiện mức độ, thùng rác thông minh, máy đo khoảng cách và các ứng dụng cảm biến không tiếp xúc khác.

Mô-đun phát ra sóng siêu âm 40kHz thông qua máy phát. Khi sóng âm gặp vật thể, nó sẽ phản xạ trở lại máy thu. Bằng cách đo thời gian tiếng vang và sử dụng tốc độ âm thanh, Arduino có thể tính toán khoảng cách giữa cảm biến và vật thể.

Mô-đun cảm biến siêu âm HC-SR04 để đo khoảng cách Arduino

Thông số kỹ thuật chính của HC-SR04

tham số Giá trị
Điện áp làm việc điển hình 5V DC
Dòng điện làm việc tĩnh Ít hơn 5mA trên một số phiên bản mô-đun
Tần số hoạt động sóng siêu âm 40kHz
Khoảng cách phát hiện Phạm vi phổ biến: 2cm đến 400cm; một số phiên bản điều chỉnh mức tăng có thể hỗ trợ phạm vi dài hơn.
Góc phát hiện Thường trong vòng 15 độ; một số phiên bản có mức tăng cao hơn có thể đạt tới khoảng 30 độ.
Độ chính xác Lên đến khoảng 0,3cm trong điều kiện thử nghiệm phù hợp
Vùng mù Khoảng cách đo tối thiểu khoảng 2cm

Mô tả chân HC-SR04

Mô-đun siêu âm HC-SR04 có bốn chân: VCC, TRIG, ECHO và GND. Arduino gửi một xung kích hoạt ngắn đến chân TRIG, sau đó đọc xung phản hồi từ chân ECHO.

Chân HC-SR04 Kết nối Arduino Chức năng
VCC 5V Cung cấp năng lượng cho mô-đun siêu âm.
TRIG Chân kỹ thuật số 9 Đầu vào kích hoạt. Arduino áp dụng xung 10us để bắt đầu đo phạm vi.
tiếng vang Chân kỹ thuật số 10 Đầu ra tiếng vang. Arduino đọc độ rộng xung để tính khoảng cách.
GND GND Kết nối mặt đất.

Chân cắm cảm biến siêu âm HC-SR04 VCC TRIG ECHO GND

Nguyên lý làm việc của cảm biến siêu âm HC-SR04

HC-SR04 hoạt động bằng cách đo thời gian bay. Arduino gửi tín hiệu kích hoạt mức cao ít nhất 10 micro giây đến chân TRIG. Sau đó, mô-đun này sẽ tự động gửi tám xung siêu âm 40kHz và chờ tiếng vang phản xạ.

Khi phát hiện thấy tín hiệu siêu âm phản xạ, chân ECHO sẽ phát ra xung mức cao. Độ dài của xung này là thời gian truyền đi một vòng của sóng siêu âm.

Khoảng cách = Thời gian vang ở mức cao × Tốc độ âm thanh / 2

Trong mã Arduino, công thức đơn giản hóa phổ biến là:

Khoảng cách tính bằng cm = thời lượng × 0,0343 / 2

Nguyên lý làm việc của mô-đun siêu âm HC-SR04 thời gian của chuyến bay

Sơ đồ thời gian mô-đun siêu âm HC-SR04

Quá trình tính thời gian rất đơn giản: Arduino giữ TRIG ở mức thấp trong thời gian ngắn, gửi xung cao 10us, sau đó đưa TRIG về mức thấp. HC-SR04 gửi một chùm siêu âm và đặt ECHO ở mức cao cho đến khi tín hiệu phản xạ trở lại hoặc hết thời gian đo.

Để tránh kết quả đo không ổn định, hãy để lại một khoảng thời gian ngắn giữa các lần đo. Chu kỳ đo khoảng 60ms thường được sử dụng để tiếng vang siêu âm trước đó có thời gian biến mất trước lần kích hoạt tiếp theo.

Khái niệm cơ bản về lập trình Arduino: Hàm PulseIn

Hàm Arduino PulseIn() được sử dụng để đo thời gian chân kỹ thuật số duy trì ở mức CAO hoặc THẤP. Đối với HC-SR04, Arduino sử dụng PulseIn(echoPin, HIGH) để đọc độ rộng xung mức cao từ chân ECHO.

Cú pháp Nghĩa
xungIn(pin, giá trị) Đọc thời lượng của xung CAO hoặc THẤP.
xungIn(pin, giá trị, thời gian chờ) Đọc xung có giá trị thời gian chờ tính bằng micro giây.

Nên sử dụng thời gian chờ. Nếu không có tiếng vang nào được trả về, hàm có thể ngừng chờ và trả về 0 thay vì chặn chương trình quá lâu.

Board Arduino sử dụng với cảm biến khoảng cách siêu âm HC-SR04

Cách kết nối cảm biến siêu âm HC-SR04 với Arduino

Hệ thống dây điện rất đơn giản. Kết nối VCC với 5V, GND với GND, TRIG với chân đầu ra kỹ thuật số Arduino và ECHO với chân đầu vào kỹ thuật số Arduino. Ví dụ sau sử dụng Arduino Uno, TRIG trên chân 9 và ECHO trên chân 10.

Sơ đồ nối dây bo mạch Arduino Uno cho cảm biến siêu âm HC-SR04

Mã Arduino cảm biến siêu âm HC-SR04

Chương trình Arduino điển hình sau đây gửi xung kích hoạt 10us, đọc độ rộng xung ECHO, tính khoảng cách tính bằng cm và in kết quả trong Màn hình nối tiếp.

const int trigPin = 9; const int echoPin = 10; thời gian dài; khoảng cách nổiCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, THẤP);   độ trễMicro giây(2);   digitalWrite(trigPin, CAO);   độ trễMicro giây(10);   digitalWrite(trigPin, THẤP);   thời lượng = xungIn (echoPin, CAO, 30000);   if (duration == 0) { Serial.println('Nằm ngoài phạm vi');   } else { distanceCm = thời lượng * 0,0343 / 2;     Serial.print('Khoảng cách: ');     Serial.print(khoảng cáchCm);     Serial.println(' cm');   } độ trễ(60); }

Nếu bạn thấy các giá trị khoảng cách trong Màn hình nối tiếp thì cảm biến siêu âm HC-SR04 và hệ thống dây Arduino đang hoạt động chính xác. Sau đó, bạn có thể sử dụng dữ liệu khoảng cách để phát hiện chướng ngại vật, điều khiển chuyển động của robot, cửa tự động, lời nhắc đỗ xe hoặc các dự án về mức chất lỏng.

Chương trình đo khoảng cách cảm biến siêu âm Arduino HC-SR04

Cách cải thiện độ chính xác của phép đo HC-SR04

  • Giữ vật đo trong phạm vi khoảng cách được khuyến nghị và nằm ngoài vùng mù 2cm.

  • Sử dụng bề mặt mục tiêu phẳng và chắc chắn để phản xạ siêu âm tốt hơn.

  • Tránh đo các vật liệu mềm, góc cạnh, xốp hoặc hấp thụ âm thanh.

  • Sử dụng nguồn điện 5V ổn định và giữ dây điện ngắn và chắc chắn.

  • Thêm thời gian chờ vào PulseIn() để ngăn việc chặn lâu khi không có tiếng vang trả về.

  • Lọc trung bình hoặc trung vị một số giá trị đọc để giảm nhiễu.

  • Để có độ chính xác cao hơn, hãy bù nhiệt độ vì tốc độ âm thanh thay đổi theo nhiệt độ không khí.

Các ứng dụng phổ biến của dự án cảm biến siêu âm Arduino

Ứng dụng HC-SR04 được sử dụng như thế nào
Robot tránh chướng ngại vật Phát hiện các vật thể ở gần và giúp robot đổi hướng.
Cảm biến khoảng cách đỗ xe Đo khoảng cách giữa xe và chướng ngại vật.
Phát hiện mức chất lỏng Đo khoảng cách từ cảm biến đến bề mặt chất lỏng mà không tiếp xúc.
Thùng rác thông minh Phát hiện bàn tay hoặc vật thể ở gần và kích hoạt mở nắp tự động.

Bản tóm tắt

Để sử dụng cảm biến siêu âm HC-SR04 với Arduino, hãy kết nối VCC với 5V, GND với GND, TRIG với chân đầu ra kỹ thuật số và ECHO với chân đầu vào kỹ thuật số. Gửi xung kích hoạt 10us, đọc thời lượng tiếng vang bằng PulseIn() và tính khoảng cách bằng công thức thời gian bay.

HC-SR04 không tốn kém, dễ sử dụng và phù hợp với nhiều dự án đo khoảng cách Arduino. Để có kết quả tốt nhất, hãy chú ý đến bề mặt mục tiêu, góc đo, vùng mù, nguồn điện ổn định, xử lý thời gian chờ và hiệu ứng nhiệt độ.

Câu hỏi thường gặp về cảm biến siêu âm Arduino HC-SR04

Cảm biến siêu âm HC-SR04 hoạt động như thế nào với Arduino?

Arduino gửi xung 10us đến chân TRIG. HC-SR04 phát ra tám xung siêu âm 40kHz và đặt chân ECHO lên cao cho đến khi âm thanh phản xạ trở lại. Arduino đo thời gian xung này và tính toán khoảng cách.

Công thức khoảng cách cho các dự án Arduino HC-SR04 là gì?

Công thức là khoảng cách = thời lượng × tốc độ âm thanh / 2. Tính bằng cm, công thức phổ biến của Arduino là khoảng cáchCm = thời lượng × 0,0343 / 2, trong đó thời lượng được đo bằng micro giây.

Tại sao chúng ta chia kết quả cảm biến siêu âm cho 2?

Thời gian tiếng vang đo được là thời gian khứ hồi từ cảm biến đến vật thể và quay trở lại cảm biến. Chia cho 2 sẽ cho khoảng cách một chiều giữa cảm biến và vật thể.

Tôi nên sử dụng chân Arduino nào cho TRIG và ECHO?

Bạn có thể sử dụng hầu hết các chân kỹ thuật số Arduino. Trong nhiều ví dụ, TRIG được kết nối với chân số 9 và ECHO được kết nối với chân số 10. Mã này phải khớp với các chân được sử dụng trong hệ thống dây điện của bạn.

Tại sao cảm biến siêu âm HC-SR04 của tôi trả về giá trị 0 hoặc ngẫu nhiên?

Các nguyên nhân phổ biến bao gồm dây lỏng, nguồn 5V không ổn định, số chân TRIG hoặc ECHO sai, không có vật thể trong phạm vi, bề mặt mục tiêu có góc cạnh, vật liệu mềm, đầu cảm biến bị chặn hoặc không có thời gian chờ trong chức năng PulseIn().

Vùng mù của cảm biến siêu âm HC-SR04 là gì?

Vùng mù là khoảng cách tối thiểu mà mô-đun không thể đo lường một cách đáng tin cậy. Đối với HC-SR04, vùng mù thường khoảng 2cm. Các vật ở gần hơn mức này có thể tạo ra kết quả đọc không ổn định.

HC-SR04 có thể đo mực nước bằng Arduino không?

Có, HC-SR04 có thể được sử dụng cho các dự án đo mực nước không tiếp xúc đơn giản nếu cảm biến được bảo vệ khỏi độ ẩm và được gắn phía trên bề mặt chất lỏng. Đối với bể chứa ẩm, ngoài trời hoặc công nghiệp, nên sử dụng cảm biến siêu âm chống thấm nước.

Làm cách nào tôi có thể làm cho kết quả đọc cảm biến siêu âm Arduino ổn định hơn?

Sử dụng nguồn điện ổn định, giữ cảm biến vuông góc với mục tiêu, tránh các bề mặt mềm hoặc có góc cạnh, thêm thời gian chờ PulseIn, thực hiện nhiều lần đọc, sử dụng tính năng lọc trung vị và cho phép khoảng 60 mili giây giữa các lần đo.

Mục lục