Máy đo khoảng cách siêu âm HC-SR04 này đã được cải tiến với cảm biến nhiệt độ LM35.
Từ trường bạn có thể nhớ lại rằng tốc độ âm thanh phụ thuộc vào mật độ không khí, và mật độ không khí phụ thuộc vào nhiệt độ.
Chúng tôi sẽ tính toán nhiệt độ bằng công thức này
temp2 = (temp / 1023.0) * 5.0 * 1000/10;
Trong đó temp2 là giá trị nhiệt độ hoàn thành sau công thức,
Và trong đó temp là giá trị thô từ cảm biến.
Những gì chúng ta cần:
- Rangefinder siêu âm HC-SR04
- Arduino
- Bánh mì
- Nhảy
- Nhiệt điện trở LM35 (Cảm biến nhiệt độ)
Hãy nhớ rằng HC-SR04 có hai dạng -
Ở đây tôi có một cái tốt và nó đo khoảng cách ổn định.
Cả hai đều đo từ 4 cm đến 400 cm.
Cung cấp bởi 3,3 đến 5 v
Để bắt đầu, chúng tôi chế nhạo tất cả trên một chiếc bánh mì.
Cảm biến siêu âm:
- GND - gnd
- Echo - 3 chân
- Trig - 2 chân
- Vcc - 5v
Nhiệt điện trở LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Nó nên như thế này:
Tiếp theo chúng tôi điền vào bản phác thảo.
Tải xuống thư viện cho cảm biến HC-SR04 -
Tải về bản phác thảo -
#include // kết nối thư viện để làm việc với cảm biến siêu âm HC-SR04
iarduino_HC_SR04 hcsr (2,3); // biểu thị danh bạ Trig và Echo
int temp = 0; // nhiệt độ thô
phao temp2 = 0; // giá trị nhiệt độ sẵn sàng
void setup () {// chạy 1 lần
Nối tiếp.begin (9600); // khởi động màn hình cổng
pinMode (A0, INPUT); // biểu thị liên hệ A0 làm đầu vào
}
void loop () {// lặp lại vô số lần
temp = analogRead (A0); // đọc giá trị của liên hệ A0 và gán temp biến cho nó
temp2 = (temp / 1023.0) * 5.0 * 1000/10; // tính giá trị thô theo công thức để lấy giá trị nhiệt độ hoàn thành
Serial.println (hcsr.distance (temp2)); // ghi phạm vi sẵn sàng trong màn hình cổng
độ trễ (1000); // trì hoãn 1 giây
}
Và đây là bản phác thảo cho màn hình LCD-
Tải về bản phác thảo -
#include // kết nối thư viện để làm việc với cảm biến siêu âm HC-SR04
#include // kết nối thư viện để làm việc với màn hình trên xe buýt I2C
Màn hình LCD LiquidCstall_I2C (0x27, 16, 2); // biểu thị (địa chỉ, cột, dòng)
iarduino_HC_SR04 hcsr (2,3); // biểu thị danh bạ Trig và Echo
int temp = 0; // nhiệt độ thô
phao temp2 = 0; // giá trị nhiệt độ sẵn sàng
void setup () {// chạy 1 lần
LCD.init (); // khởi tạo màn hình
LCD.backlight (); // bật đèn nền màn hình
pinMode (A0, INPUT); // biểu thị liên hệ A0 làm đầu vào
}
void loop () {// lặp lại vô số lần
temp = analogRead (A0); // đọc giá trị của liên hệ A0 và gán temp biến cho nó
temp2 = (temp / 1023.0) * 5.0 * 1000/10; // tính giá trị thô theo công thức để lấy giá trị nhiệt độ hoàn thành
lcd.setCoder (2, 0); // đặt con trỏ trên 2 cột và 0 hàng
LCD.print (temp2); // viết khoảng cách
lcd.setCoder (5,0); // đặt con trỏ trên cột thứ 5 và hàng thứ 0
lcd.print ("cm"); // viết cm
độ trễ (1000); // trì hoãn 1 giây
}
Viết bình luận và câu hỏi, tôi sẽ trả lời tất cả mọi thứ!