Đã được đăng vào 05/06/2019 @ 14:10
Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
JSN-SR04T-2.0 là cảm biến đo khoảng cách bằng siêu âm, khoảng cách đo từ 20cm-600cm, sai số trong khoảng 2mm.
Sản phẩm bao gồm một cảm biến siêu âm và một mạch điều khiển.
Đầu dò cảm biến được sản xuất theo quy trình công nghiệp, chống thấm nước, hiệu suất ổn định và tương thích với tất cả các MCU hiện có trên thị trường.
Điểm mù của cảm biến trong phạm vị 20cm đổ lại, vì thế chỉ có thể đo khoảng cách cách cảm biến từ 20cm trở lên.
Xem thêm:
- Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino
- Đo khoảng cách (cm-inch) với cảm biến siêu âm SR04T và Arduino
Ưu điểm
- Kích thước nhỏ, dễ dàng sử dụng.
- Công suất thấp.
- Độ chính xác cao.
- Chống nhiễu tốt.
- Chống thấm.
Nhược điểm
- JSN-SR04T có góc mở rất lớn ( >= 75 độ) nên KHÔNG phù hợp đo khoảng cách trong không gian chật hẹp. Chỉ nên dùng trong không gian mở như ngoài trời hoặc bể chứa kích thước lớn- không vật cản.
- Nếu đo trong không gian chật hẹp thì sai số rất lớn do sóng phản xạ lại bị va đập và vật cảm hoặc thành bể – bình chứa.
Đặc điểm kỹ thuật
- Điện áp hoạt động: 3-5.5VDC.
- Công suất: <40mW
- Tần số cảm biến: 40KHz
- Khoảng cách: 20cm-600cm.
- Độ chính xác: <2mm.
- Góc đo: 75 độ.
- Kích thước: 422912mm (LWH).
- Nhiệt độ làm việc -20°C – 70°C.
Kết nối với MCU
JSN-SRO4T-2.0 | MCU |
---|---|
5V | 3.3-5V |
Trig (RX) | RX |
Echo (TX) | TX |
GND | GND |
JSN-SR04T-2.0 có 3 chế độ làm việc, làm việc với chế độ nào phụ thuộc vào giá trị điện trở R27 trên board.

Mode 1: R27 để trống.
Chế độ hoạt động cơ bản:
- Sử dụng chân IO của MCU để điều khiển, tối thiểu là một xung 10us.
- Module tự động gửi 8 sóng 40khz vuông, tự động phát hiện xem có một tín hiệu để trở về;
- Một tín hiệu để trở lại, thông qua mức cao ở chân ECHO, high time là thời gian sóng siêu âm từ lúc phát đi đế lúc trở lại. Kiểm tra khoảng cách = (high time * tốc độ âm thanh (340M / s)) / 2;
- Module được kích hoạt sau khi đo khoảng cách, nếu bạn không thể nhận được echo (lý do vượt quá phạm vi đo hoặc đầu dò không nằm trên vật đo được), cổng ECHO sẽ tự động xuống mức thấp sau 60ms, và dừng việc đo lại cho dù thành công hay không.
Mode 2: R27=47K
Ở chế độ làm việc này, thì mỗi 100ms sẽ tự động xuất ra giá trị khoảng cách cảm biến đo được, đơn vị là milimet.
Sau khi module được cấp nguồn, sẽ hoạt động ở mode 2 ngay lập tức, và dữ liệu sẽ được gửi đi mỗi 100ms qua chân echo (TX).
Dữ liệu được gữi đi bao gồm: 0xFF +H_DATA + L_DATA + SUM
- 0xFF: Byte báo hiệu bắt đầu gữi dữ hiệu.
- H_Data: 8 bit trên của khoảng cách.
- L_Data: 8 bit dưới của khoảng cách.
- SUM: Byte kiểm tra dữ liệu gữi qua có đúng hay không.
- SUM = 0xFF + H_DATA +L_DATA (luôn thấp hơn 8 bit)
**Chú ý: Khoảng cách được gửi đi tổng cộng là 16 bit, và khoảng cách được tính bằng milimet.
Ví dụ: Cảm biến gửi về FF 07 A1 A7 Sum = A7 = (0x07 + 0xA1 +0xFF) & 0x00FF.
0x07 là 8 bit trên của khoảng cách.
0xA1 là 8 bit dưới của khoảng cách.
Giá trị khoảng cách là 0x07A1, chuyển về thập phân là 1953mm
Mode 3: R27=120K
Sau khi cấp nguồn cho module, module sẽ chuyển sang chế độ chờ (stand by).
TTL sẽ được cấu hình là serial port là: 9600, n, 8, 1.
Khi chân RX nhận được giá trị 0x55, module sẽ bắt đầu làm việc tương tự như ở Mode 2
Tài liệu tham khảo (Datasheet)
Test Code : Sử dụng Arduino với cảm biến HC-SR04 nhưng cũng có thể sử dụng với JSN-SR04T.
Tham khảo 2 bài sau:
Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino
Đo khoảng cách (cm-inch) với cảm biến siêu âm SR04T và Arduino
SƠ ĐỒ NGUYÊN LÝ – CẤU TẠO
JSN-SR04T schematic
Mạch nguyên lý
Phân tích mạch
- Mạch sử dụng vi điều khiển STM8 để phát xung tần số 40KHz đọc tín hiệu Echo trả về từ đầu dò cảm biến. Chân PC4 cấp xung 40KHz.


- Sử dụng IC LM324 có 4 tầng OA để xử lý tín hiệu Echo trả về. Xung Echo sẽ thay đổi khi khoảng cách từ đầu dò siêu âm đến vật cản thay đổi. Chân PC6 đưa tín hiệu Echo trả về vào vi điều khiển STM8 để xử lý.



- Chân PC7 dùng để On/Off các tầng OA. Chân PB5 và PC7 kết hợp với nhau để lấy điện áp tham chiếu trên OA.

- Chân PD1 để On/Off đèn LED trạng thái.
Các bạn dựa vào những giải thích bên trên có thể tháo bỏ con STM8 có sẵn và sử dụng vi điều khiển loại khác (Ví dụ: STM32, Arduino) để viết lại code đọc tín hiệu module, làm chủ 100% công nghệ, tích hợp vào phần cứng các bạn tự làm thay vì đi mua module siêu âm này.

ỨNG DỤNG TRONG ĐỜI SỐNG
Hiện nay, ứng dụng phổ biến nhất của module siêu âm loại này là dùng cho Cảm biến lùi trên ô tô.



Loại này mua 200k ngoài chợ – 4 đầu dò siêu âm


Nguyên lý cũng giống module JSN-SR04T. Có điều bổ sung thêm 1 con IC Hợp kênh- Phân kênh (Mux-Demux): HEF4052

Một số mạch nguyên lý của cảm biến lùi ô tô hãng khác do admin tự mua về và vẽ lại, các bạn tải ở dưới đây:
Sơ đồ khối giải thích hoạt động

Chế lại mạch dùng vi điều khiển của mình tự viết code:


Tín hiệu trả về dạng cm (centimet). Truyền qua Serial.
Xem Video dưới đây:
Tải code ở đây: DOWNLOAD
In the circuit the capacitor values are not mentioned. can you please mention? also your circuits are quite different than the circuit in the code. how?
I have updated the schematic circuit with the full capacitor value for you!
Hi!
I also want to know the capacitor values.
Thank you for your wonderful work.
The capacitor values have all been fully documented in the JSN-SR04T schematic. Please download the JSN-SR04T schematic (PDF) for a better view. Thanks!
Dear friend!
Perfectly! you are the best!
But I didn’t really understand at what point to need to switch pin PB5.
Could you please give me the source code of the jsn-sr04t module? Your code for arduino.
Have a nice day
In the photo, I can see not an Arduino, but an STM32 blue pill. This code will also help. Thanks!
Hi,
i have a question:
I don’t know what the trimmers are used for before the sensor and how they are calibrated.
Thank you for your great job!
Dear friend.
Say the parameters of the transformer (its frequency, size, inductance, number of turns)
It’s not a transformer. It is an Inductor!
Dear friend.
It doesn’t matter what it is called.
The main thing is its parameters. Can you measure it?
Xin chào quản trị viên. Trước hết, tôi xin cảm ơn bạn về nội dung phong phú của trang web và lời giải thích chi tiết của bạn. Đó là một trang web rất hữu ích và tôi đã gửi liên kết trang web cho tất cả bạn bè của mình.
Tôi hiện có mô-đun AJ-SR04M và tôi cần làm việc với nó trong dự án trường học của mình. Sẽ có tổng cộng 8 cảm biến trên nền tảng này. Tuy nhiên, những mô-đun này có vẻ rất đắt đối với tôi. Tôi đã tìm thấy các thành phần của nó trong phòng thí nghiệm của trường và trợ lý nói rằng anh ấy sẽ đưa cho tôi hef4052.
Điều tôi muốn làm là chạy và đọc 8 mô-đun SR04M riêng lẻ với hef4052. Tôi đang gặp rắc rối vì tài nguyên có sẵn quá ít. Tôi chỉ có thể sử dụng nuvoton m031ld2ae làm vi điều khiển.
Ở trên, bạn đã chỉ ra rằng bạn chạy mô-đun bằng bộ xử lý của riêng mình. Bạn có nghĩ rằng tôi có thể làm như vậy? Bạn có thể hướng dẫn tôi? Cảm ơn bạn trước và tôi chúc bạn thành công trong công việc của bạn.
Tôi đã sử dụng một dịch giả bởi vì tôi không biết ngôn ngữ của bạn. Tôi hy vọng đó không phải là một vấn đề.
Chào bạn Selim Soylu. Cảm ơn bạn đã quan tâm bài viết.
Nếu dùng 8 module thì bạn có thể dùng IC chuyển mạch hoặc có thể dùng STM32F103VET6 (Tài nguyên rất nhiều cho bạn sử dụng)
Xin chào quản trị viên,
Cảm ơn về câu trả lời của bạn.
Có vài điều tôi muốn hỏi. Trước hết, bộ xử lý cánh tay 8 bit trên mô-đun áp dụng tín hiệu pwm để điều khiển biến áp cảm biến siêu âm. Sau đó, tín hiệu đến từ cảm biến đến mô-đun được khuếch đại bằng lm324 và quay trở lại bộ xử lý. Bộ xử lý có đọc tín hiệu này bằng mô-đun ADC hoặc với chân được xác định là đầu vào không? Hoặc là tín hiệu đầu vào được phát hiện với chế độ chụp? Và bạn có nghĩ rằng tôi nên đọc 8 cảm biến từng cái một hay tôi nên gửi tín hiệu cùng một lúc và đọc tất cả chúng từ các chân khác nhau? Cảm ơn bạn rất nhiều vì sự quan tâm của bạn. Tôi chúc bạn có công việc suôn sẻ.
Curious if you’ve experimented with R27 to put it into the different modes? There must be valid ranges for each mode but I’ve not seen them published anywhere? For example, I’ve got one running in mode 3 with 100k instead of 120k. It was the closest 0603 value I had to hand at the time.
“JSN-SR04T has a very large opening angle (>= 75 degrees) so it is NOT suitable for measuring distances in tight spaces. Should only be used in open spaces such as outdoors or large tanks – no obstructions .”
This is not quite true. I’m using one of these sensors in a 2″ standing pipe to measure the water level in my sump pit. Doesn’t get much tighter than that! The walls of the pipe need to be completely smooth but it works well.