เครื่องวัดระยะทางด้วยคลื่นอัลตราโซนิก HC-SR04 นี้ได้รับการปรับปรุงด้วยเซ็นเซอร์อุณหภูมิ LM35
จากโรงเรียนคุณสามารถจำได้ว่าความเร็วของเสียงขึ้นอยู่กับความหนาแน่นของอากาศและความหนาแน่นของอากาศขึ้นอยู่กับอุณหภูมิ
เราจะคำนวณอุณหภูมิโดยใช้สูตรนี้
temp2 = (temp / 1023.0) * 5.0 * 1000/10;
โดยที่ temp2 คือค่าอุณหภูมิสำเร็จรูปหลังจากสูตร
และที่อุณหภูมิคือค่าดิบจากเซ็นเซอร์
สิ่งที่เราต้องการ:
- เครื่องวัดระยะด้วยคลื่นอัลตราโซนิก HC-SR04
- Arduino
- คณะกรรมการการสร้างต้นแบบ
- จัมเปอร์
- เทอร์มิสเตอร์ LM35 (เซ็นเซอร์อุณหภูมิ)
โปรดทราบว่า HC-SR04 มีสองรูปแบบ -
ที่นี่ฉันมีสิ่งที่ดีและมันวัดระยะทางได้อย่างเสถียร
พวกเขาทั้งสองวัดจาก 4 ซม. ถึง 400 ซม.
ขับเคลื่อนโดย 3.3 ถึง 5 v
ในการเริ่มต้นเราจะจำลองมันทั้งหมดบนเขียงหั่นขนม
เซ็นเซอร์อัลตราโซนิก:
- GND - gnd
- Echo - 3 พิน
- Trig - 2 พิน
- Vcc - 5v
เทอร์มิสเตอร์ LM35:
- 1 - 5 โวลต์
- 2 - A0
- 3 - GND
มันควรจะเป็นแบบนี้:
ต่อไปเรากรอกแบบร่าง
ดาวน์โหลดไลบรารี่สำหรับเซ็นเซอร์ HC-SR04 -
ดาวน์โหลดร่าง -
#include // เชื่อมต่อไลบรารีเพื่อทำงานกับเซ็นเซอร์อัลตราโซนิค HC-SR04
iarduino_HC_SR04 hcsr (2,3); // แสดงถึงผู้ติดต่อ Trig และ Echo
int temp = 0; // อุณหภูมิดิบ
float temp2 = 0; // ค่าอุณหภูมิพร้อม
void setup () {// run 1 ครั้ง
Serial.begin (9600); // เริ่มการตรวจสอบพอร์ต
pinMode (A0, INPUT); // แสดงว่าติดต่อ A0 เป็นอินพุต
}
void loop () {// ทำซ้ำจำนวนครั้งไม่สิ้นสุด
temp = analogRead (A0); // อ่านค่าของการติดต่อ A0 และกำหนดตัวแปรชั่วคราว
temp2 = (temp / 1023.0) * 5.0 * 1000/10; // คำนวณมูลค่าวัตถุดิบตามสูตรเพื่อรับค่าอุณหภูมิที่เสร็จสิ้นแล้ว
อนุกรม. println (hcsr.distance (temp2)); // เขียนช่วงเตรียมพร้อมในมอนิเตอร์พอร์ต
ล่าช้า (1,000); // ล่าช้า 1 วินาที
}
และนี่คือภาพร่างสำหรับจอ LCD -
ดาวน์โหลดร่าง -
#include // เชื่อมต่อไลบรารีเพื่อทำงานกับเซ็นเซอร์อัลตราโซนิค HC-SR04
#include // เชื่อมต่อไลบรารีเพื่อทำงานกับจอแสดงผลบนบัส I2C
LiquidCrystal_I2C lcd (0x27, 16, 2); // denote (ที่อยู่, คอลัมน์, บรรทัด)
iarduino_HC_SR04 hcsr (2,3); // แสดงถึงผู้ติดต่อ Trig และ Echo
int temp = 0; // อุณหภูมิดิบ
float temp2 = 0; // ค่าอุณหภูมิพร้อม
void setup () {// run 1 ครั้ง
lcd.init (); // เริ่มต้นการแสดงผล
lcd.backlight (); // เปิดไฟหน้าจอแสดงผล
pinMode (A0, INPUT); // แสดงว่าติดต่อ A0 เป็นอินพุต
}
void loop () {// ทำซ้ำจำนวนครั้งไม่สิ้นสุด
temp = analogRead (A0); // อ่านค่าของการติดต่อ A0 และกำหนดตัวแปรชั่วคราว
temp2 = (temp / 1023.0) * 5.0 * 1000/10; // คำนวณมูลค่าวัตถุดิบตามสูตรเพื่อรับค่าอุณหภูมิที่เสร็จสิ้นแล้ว
lcd.setCursor (2, 0); // วางเคอร์เซอร์ที่ 2 คอลัมน์และ 0 แถว
lcd.print (temp2); // เขียนระยะทาง
lcd.setCursor (5,0); // วางเคอร์เซอร์ในคอลัมน์ที่ 5 และแถวที่ 0
lcd.print ("cm"); // เขียน cm
ล่าช้า (1,000); // ล่าช้า 1 วินาที
}
เขียนความคิดเห็นและคำถามฉันจะตอบทุกอย่าง!