Đo khoảng cách sử dụng Arduino
Mạch này sẽ giúp bạn đo khoảng cách 1 cách dễ dàng bằng cảm biến siêu âm HC-SR40 và Arduino. Khoảng cách sẽ được hiển thị trên 3 led 7 đoạn. Với mạch này bạn có thể đo khoảng cách lên tới 200cm và sai số chỉ 1cm. Mạch này được ứng dụng rộng rãi trong đời sống chúng ta như Bãi xe thông minh, hệ thống cảnh báo chướng ngại vật, robot thăm dò địa hình, v.v…
Mô-đun cảm biến siêu âm HC-SR40
HC SR04 là mô-đun siêu âm với độ chính xác 0,3cm. Phạm vi cảm biến của mô-đun này là từ 2cm đến 5m. Dòng điện làm việc của cảm biến này là 15mA và góc đo là 15°.
HC-SR04 gồm có bốn chân:
· Vcc: Đây là chân nguồn sử dụng điện áp 5V.
· Trigger: Kích một xung 10uS cho chân này để kích hoạt truyền. Khi nhận được xung kích hoạt hợp lệ, HR-SR04 sẽ phát ra tám xung 40KHz. Khi các xung này phản xạ trở lại thì cảm biến sẽ đo thời gian và tính được khoảng cách.
· Echo: Tại chân này, HC-SR04 phát ra tín hiệu ở mức cao có thời gian tỷ lệ với khoảng cách đo được.
· GND: Đây là chân nối đất / 0V.
Sơ đồ mạch
Chân Trigger của mô đun cảm biến siêu âm được nối với chân D0 của arduino. Chân Echo thì được nối với chân D13. Công tắc S1 sử dụng để chọn đơn vị đo được hiển thị trên Led 7 đoạn và được nối với chân D4 của arduino. Nếu chân D4 được giữ ở mức cao, khoảng cách sẽ được tính bằng cm và nếu được giữ ở mức thấp, khoảng cách sẽ được tính bằng inch. Các chân D1, D2, D3 có chức năng điều khiển 3 transistor Q1, Q2 và Q3. 8 chân của Led được giao tiếp với các chân D5 đến D12 của arduino. Board arduino có thể được cấp nguồn thông qua giắc cắm 9V. Các thiết bị sử dụng nguồn 5V sẽ được lấy từ Arduino thông qua chân 5V. Các điện trở R9, R10 và R11 có chức năng giới hạn dòng ở cực B của transistor. Điện trở 330 ohm từ R1 đến R8 giới hạn dòng điện qua các đoạn của Led 7 đoạn.
Chương trình / Code
https://drive.google.com/file/d/119osm-X-EnzoqQtA6oCRJ3ro0hNDviv1/view?usp=sharing
Giải thích chương trình
Đầu tiên chúng ta phải có thư viện để giao tiếp với HC-SR40. Công việc gửi xung kích 10uS, chờ phản xạ và đo độ rộng của xung phản xạ v.v… đều đã được viết và thực hiện bởi thư viện. Chỉ cần một dòng lệnh usec = sonar.ping() sẽ làm cho arduino thực hiện tất cả các công việc trên và độ rộng của xung Echo trong micro giây sẽ được lưu trữ trong biến usec. Chia độ rộng xung theo uS cho 58 sẽ cho khoảng cách tính bằng cm và chia độ rộng xung theo uS cho 148 sẽ cho khoảng cách tính bằng inch. Sử dụng vòng lặp if – else để chọn đơn vị theo vị trí của công tắc chọn (S1).
Đo Khoảng cách và hiển thị trên LCD
Chương trình / Code
https://drive.google.com/file/d/1LkjM9vldz6ZLNpUgIvmTQKilIoHEHAEI/view?usp=sharing
Hotline: 0979 466 469