#3_Cảm biến siêu âm HC-SR04
Cảm biến siêu âm HC-SR04 là nội dung tiếp theo ta cùng tìm hiểu trong chuyên mục “STM32 và ngoại vi“. Ta sẽ tạo xung 10μs (theo datasheet) gửi ra ngoại vi và đo độ rộng xung trả về, từ đó tính ra được giá trị của khoảng cách.
———————————
Cùng xem bài viết bên dưới.
Cảm biến siêu âm HC-SR04
Ta bắt đầu bằng việc tải và xem datasheet của nó, tải pdf ở cuối phần A. Từ datasheet ta có thể đọc được cách thức ngoại vi hoạt động và thông số nguồn, độ phân giải khi đo khoảng cách…
Để cảm biến hoạt động, cần tạo 1 xung có độ rộng 10µs gửi đến ngoại vi qua chân TRIG. Sau đó đọc độ rộng xung được trả về qua chân ECHO. Dùng “equation 1” ta sẽ tính được khoảng cách bằng công thức vật lý S = v*t với v là vận tốc âm thanh (340 m/s).
Trước khi tìm hiểu về ngoại vi này cần nắm được Input capture mode, bạn xem lại bài viết “#4.2_PWM Input | STM32 cơ bản“.
Bạn có thể tải datasheet HC-SR04 ở google hoặc ngay bên dưới.
Thực hành trên STM32cubeIDE
Cấu hình chân
Kết nối phần cứng như hình vẽ, chân PE7 và PE9 theo thứ tự là chân TRIG và ECHO của cảm biến siêu âm HC-SR04
Tiếp theo là thiết lập cubeMX, như phần Input capture trước đó và lưu ý thêm phần tham số để tạo hàm delay(µs). Hệ số PRE_S và APB2 timer clock lần lượt là 100-1 và 100MHz, PRE_A để ở giá trị tối đa (0xffff -1).
Thiết lập và kết nối của các chân lúc này đã xong. 1 số lưu ý:
- Nguồn VCC sử dụng theo datasheet là 5V
- Lưu ý phần APB2 timer clock và PRE_S để tạo hàm delay(μs)
Lập trình cảm biến siêu âm HC-SR04
Phần lập trình rất ngắn gọn, mình viết sẵn vào thư viện để dễ dàng sử dụng vào các Project lớn.
– Hàm nhận xung ECHO đọc giá trị bộ đếm hiện tại, ở đây ta đọc theo sườn lên và sườn xuống. Khi đọc xong giá trị sườn lên, ta chuyển chế độ đọc sườn xuống (FALLING) để đọc giá trị sườn xuống, rồi trừ 2 giá trị, sẽ được độ rộng xung ECHO.
Hàm while(1) là gọi và nhận giá trị khoảng cách.
Và đây là kết quả debug:
Phần cứng và code
Phần cứng sử dụng STM32F411, HC-SR04. Phần mềm sử dụng là stm32cubeIDE. File code ví dụ các bạn tải về bên dưới, phần cứng tại Shoppe.
Ta vừa tìm hiểu về ngoại vi Cảm biến siêu âm HC-SR04 trong chuyên mục STM32 và ngoại vi. Bài viết tiếp theo sẽ là Joystick KY-023. Cho bạn nào chưa biết, nó hoạt động như nút di chuyển trên tay game PS nhá :).
Mong rằng chuyên mục này sẽ giúp nhiều bạn tiếp cận hơn với dòng vi điều khiển STM32.
Các bài viết khác cùng chuyên mục trong “STM32 và ngoại vi“.
Các chuyên mục khác:
Bạn có thắc mắc gì trong bài viết không?
Đánh giá và để lại bình luận bên dưới nhá.