تم تحسين جهاز تحديد المدى بالموجات فوق الصوتية HC-SR04 باستخدام مستشعر درجة الحرارة LM35.
من المدرسة يمكنك أن تتذكر أن سرعة الصوت تعتمد على كثافة الهواء ، وتعتمد كثافة الهواء على درجة الحرارة.
سنقوم بحساب درجة الحرارة باستخدام هذه الصيغة
temp2 = (temp / 1023.0) * 5.0 * 1000/10 ؛
حيث temp2 هي قيمة درجة الحرارة النهائية بعد الصيغة ،
وحيث تكون درجة الحرارة هي القيمة الأولية من المستشعر.
ما نحتاجه:
- Rangefinder HC-SR04 بالموجات فوق الصوتية
- اردوينو
- اللوح
- صداري
- الثرمستور LM35 (مستشعر درجة الحرارة)
ضع في اعتبارك أن HC-SR04 يأتي في شكلين -
هنا لدي فكرة جيدة وهي تقيس المسافة بثبات.
كلاهما قياس من 4 سم إلى 400 سم.
مدعوم من 3.3 إلى 5 ضد
بادئ ذي بدء ، نسخر من كل شيء على لوحة توصيل.
جهاز استشعار بالموجات فوق الصوتية:
- GND - gnd
- صدى - 3 دبابيس
- Trig - 2 دبابيس
- Vcc - 5v
الثرمستور LM35:
- 1-5 فولت
- 2 - أ 0
- 3 - GND

يجب أن يكون مثل هذا:
بعد ذلك نملأ الرسم.
مكتبة التنزيل لمستشعر HC-SR04 -
تحميل رسم -
#include // توصيل المكتبة للعمل مع مستشعر الموجات فوق الصوتية HC-SR04
iarduino_HC_SR04 hcsr (2،3) ؛ // تشير إلى جهات الاتصال Trig و Echo
int temp = 0 ؛ // درجة الحرارة الخام
تعويم درجة الحرارة 2 = 0 ؛ // قيمة درجة حرارة جاهزة
إعداد فارغ () {/ تشغيل 1 مرة
Serial.begin (9600) ؛ // بدء تشغيل مراقبة المنفذ
pinMode (A0 ، INPUT) ؛ // تشير إلى جهة الاتصال A0 كمدخل
}}
حلقة فارغة () {// يكرر عددًا لا نهائيًا من المرات
temp = analogRead (A0) ، // قراءة قيمة جهة الاتصال A0 وتعيين درجة الحرارة المتغيرة لها
temp2 = (temp / 1023.0) * 5.0 * 1000/10 ؛ // احسب القيمة الأولية وفقًا للصيغة للحصول على قيمة درجة الحرارة النهائية
Serial.println (hcsr.distance (temp2)) ؛ // كتابة النطاق الجاهز في شاشة المنفذ
تأخير (1000) ؛ // مهلة ثانية واحدة
}}
وهنا رسم تخطيطي لشاشة LCD-
تحميل رسم -
# تتضمن // توصيل المكتبة للعمل مع مستشعر الموجات فوق الصوتية HC-SR04
#include // قم بتوصيل المكتبة للعمل مع الشاشة على ناقل I2C
LiquidCrystal_I2C lcd (0x27، 16، 2) ؛ // تشير إلى (العنوان والأعمدة والخطوط)
iarduino_HC_SR04 hcsr (2،3) ؛ // تشير إلى جهات الاتصال Trig و Echo
int temp = 0 ؛ // درجة الحرارة الخام
تعويم درجة الحرارة 2 = 0 ؛ // قيمة درجة حرارة جاهزة
إعداد فارغ () {/ تشغيل 1 مرة
lcd.init () ؛ // تهيئة العرض
lcd.backlight () ؛ // قم بتشغيل الإضاءة الخلفية للشاشة
pinMode (A0 ، INPUT) ؛ // تشير إلى جهة الاتصال A0 كمدخل
}}
حلقة فارغة () {// يكرر عددًا لا نهائيًا من المرات
temp = analogRead (A0) ، // قراءة قيمة جهة الاتصال A0 وتعيين درجة الحرارة المتغيرة لها
temp2 = (temp / 1023.0) * 5.0 * 1000/10 ؛ // احسب القيمة الأولية وفقًا للصيغة للحصول على قيمة درجة الحرارة النهائية
lcd.setCursor (2، 0) ؛ // ضع المؤشر على عمودين و 0 صف
lcd.print (temp2) ؛ // كتابة المسافة
lcd.setCursor (5،0)؛ // ضع المؤشر على العمود الخامس والصف 0
lcd.print ("cm") ؛ // كتابة سم
تأخير (1000) ؛ // مهلة ثانية واحدة
}}
اكتب التعليقات والأسئلة ، سأجيب على كل شيء!