norr@manorshi.com         +86-519-89185720
1
مركز الأخبار

كيفية استخدام حساس الموجات فوق الصوتية مع الاردوينو؟

المشاهدات: 164     المؤلف: جريس وقت النشر: 2021-07-26 الأصل: موقع

زر مشاركة الفيسبوك
زر المشاركة على تويتر
زر مشاركة الخط
زر المشاركة في وي شات
زر المشاركة ينكدين
زر مشاركة بينتريست
زر مشاركة الواتس اب
زر مشاركة kakao
زر مشاركة سناب شات
زر مشاركة برقية
شارك زر المشاركة هذا

كيفية استخدام حساس الموجات فوق الصوتية مع الاردوينو: دليل HC-SR04

ال يعد مستشعر الموجات فوق الصوتية HC-SR04 أحد أكثر وحدات قياس المسافة شيوعًا لمشاريع Arduino. يتم استخدامه على نطاق واسع في روبوتات تجنب العوائق، وأجهزة استشعار وقوف السيارات، واكتشاف المستوى، وصناديق القمامة الذكية، وعدادات المسافة، وغيرها من تطبيقات الاستشعار غير المتصلة.

تنبعث الوحدة من موجات فوق صوتية 40 كيلو هرتز من خلال جهاز إرسال. عندما تلتقي موجة الصوت بجسم ما، فإنها تنعكس مرة أخرى إلى جهاز الاستقبال. من خلال قياس وقت الصدى واستخدام سرعة الصوت، يستطيع Arduino حساب المسافة بين المستشعر والجسم.

وحدة استشعار بالموجات فوق الصوتية HC-SR04 لقياس مسافة اردوينو

HC-SR04 المعلمات التقنية الرئيسية

المعلمة قيمة
جهد العمل النموذجي 5 فولت تيار مستمر
تيار العمل الثابت أقل من 5 مللي أمبير في بعض إصدارات الوحدة
تردد التشغيل موجة بالموجات فوق الصوتية 40 كيلو هرتز
مسافة الكشف النطاق المشترك: 2 سم إلى 400 سم؛ قد تدعم بعض الإصدارات المعدلة حسب الكسب نطاقًا أطول.
زاوية الكشف عادة في حدود 15 درجة. قد تصل بعض الإصدارات ذات الكسب الأعلى إلى حوالي 30 درجة.
دقة يصل إلى حوالي 0.3 سم تحت ظروف الاختبار المناسبة
المنطقة العمياء حوالي 2 سم الحد الأدنى لمسافة القياس

وصف دبوس HC-SR04

تحتوي وحدة الموجات فوق الصوتية HC-SR04 على أربعة دبابيس: VCC وTRIG وECHO وGND. يرسل Arduino نبضة تحفيز قصيرة إلى طرف TRIG، ثم يقرأ النبضة المرتدة من طرف ECHO.

HC-SR04 دبوس اتصال اردوينو وظيفة
VCC 5 فولت مصدر الطاقة لوحدة الموجات فوق الصوتية.
علم حساب المثلثات الرقم الرقمي 9 إدخال الزناد. يطبق Arduino نبضًا بقوة 10us لبدء النطاق.
صدى دبوس رقمي 10 إخراج الصدى. يقرأ اردوينو عرض النبضة لحساب المسافة.
أرض أرض اتصال أرضي.

HC-SR04 جهاز استشعار بالموجات فوق الصوتية pinout VCC TRIG ECHO GND

مبدأ العمل لجهاز الاستشعار بالموجات فوق الصوتية HC-SR04

يعمل HC-SR04 عن طريق قياس وقت الرحلة. يرسل Arduino إشارة تشغيل عالية المستوى لا تقل عن 10 ميكروثانية إلى طرف TRIG. تقوم الوحدة تلقائيًا بعد ذلك بإرسال ثماني نبضات فوق صوتية بتردد 40 كيلو هرتز وتنتظر الصدى المنعكس.

عندما يتم الكشف عن إشارة الموجات فوق الصوتية المنعكسة، يقوم طرف ECHO بإخراج نبض عالي المستوى. مدة هذه النبضة هي زمن السفر ذهابًا وإيابًا للموجة فوق الصوتية.

المسافة = زمن الصدى عالي المستوى × سرعة الصوت / 2

في كود اردوينو، الصيغة المبسطة الشائعة هي:

المسافة بالسنتيمتر = المدة × 0.0343 / 2

HC-SR04 وحدة الموجات فوق الصوتية وقت مبدأ عمل الطيران

HC-SR04 مخطط توقيت وحدة الموجات فوق الصوتية

عملية التوقيت بسيطة: يبقي Arduino TRIG منخفضًا لفترة وجيزة، ويرسل نبضة عالية بمقدار 10us، ثم يعيد TRIG إلى المستوى المنخفض. يرسل HC-SR04 انفجارًا بالموجات فوق الصوتية ويضبط ECHO على مستوى عالٍ حتى تعود الإشارة المنعكسة أو تنتهي مهلة القياس.

لتجنب القراءات غير المستقرة، اترك مهلة قصيرة بين القياسات. يتم استخدام دورة قياس تبلغ حوالي 60 مللي ثانية بشكل شائع، بحيث يكون لدى صدى الموجات فوق الصوتية السابق وقت ليختفي قبل المشغل التالي.

أساسيات برمجة الاردوينو: وظيفة النبض

ArduinopulseIn () لقياس المدة التي يظل فيها الدبوس الرقمي مرتفعًا أو منخفضًا. تُستخدم وظيفة بالنسبة لـ HC-SR04، يستخدم Arduino النبض (echoPin، HIGH) لقراءة عرض النبض عالي المستوى من طرف ECHO.

بناء الجملة معنى
نبض (دبوس، قيمة) يقرأ مدة النبض العالي أو المنخفض.
نبض (دبوس، قيمة، مهلة) يقرأ النبض بقيمة المهلة بالميكروثانية.

يوصى باستخدام المهلة. إذا لم يتم إرجاع أي صدى، فيمكن للوظيفة التوقف عن الانتظار وإرجاع 0 بدلاً من حظر البرنامج لفترة طويلة جدًا.

لوحة اردوينو تستخدم مع حساس المسافة بالموجات فوق الصوتية HC-SR04

كيفية توصيل مستشعر الموجات فوق الصوتية HC-SR04 بالاردوينو

الأسلاك واضحة ومباشرة. قم بتوصيل VCC إلى 5V، وGND إلى GND، وTRIG بمنفذ إخراج رقمي من Arduino، وECHO بمنفذ إدخال رقمي من Arduino. يستخدم المثال التالي Arduino Uno و TRIG على السن 9 و ECHO على السن 10.

مخطط الأسلاك للوحة Arduino Uno لجهاز استشعار الموجات فوق الصوتية HC-SR04

HC-SR04 رمز اردوينو الاستشعار بالموجات فوق الصوتية

يرسل برنامج Arduino النموذجي التالي نبضة تشغيل 10us، ويقرأ عرض نبضة ECHO، ويحسب المسافة بالسنتيمتر، ويطبع النتيجة في الشاشة التسلسلية.

const int trigPin = 9; const int echoPin = 10; مدة طويلة تعويم المسافة سم؛ إعداد باطلة () {pinMode (trigPin، OUTPUT)؛   pinMode(echoPin, INPUT);   Serial.begin(9600); } حلقة باطلة () {digitalWrite (trigPin، LOW)؛   تأخير ميكروثانية (2)؛   الكتابة الرقمية (trigPin، HIGH)؛   تأخير ميكروثانية(10);   الكتابة الرقمية (trigPin، LOW)؛   المدة =pulseIn(echoPin, HIGH, 30000);   if (duration == 0) { Serial.println('خارج النطاق');   } else { distanceCm = المدة * 0.0343 / 2;     Serial.print('المسافة: ');     Serial.print(distanceCm);     Serial.println('cm');   } تأخير(60); }

إذا رأيت قيم المسافة في الشاشة التسلسلية، فهذا يعني أن مستشعر الموجات فوق الصوتية HC-SR04 وأسلاك Arduino يعملان بشكل صحيح. يمكنك بعد ذلك استخدام بيانات المسافة لاكتشاف العوائق، أو التحكم في حركة الروبوت، أو الأبواب الأوتوماتيكية، أو تذكيرات ركن السيارة، أو مشاريع مستوى السائل.

برنامج نطاق الاستشعار بالموجات فوق الصوتية Arduino HC-SR04

كيفية تحسين دقة القياس HC-SR04

  • احتفظ بالجسم الذي تم قياسه ضمن نطاق المسافة الموصى به وخارج المنطقة العمياء البالغة 2 سم.

  • استخدم سطحًا مستهدفًا مسطحًا وصلبًا لتحسين انعكاس الموجات فوق الصوتية.

  • تجنب قياس المواد الناعمة أو الزاوية أو المسامية أو الممتصة للصوت.

  • استخدم مصدر طاقة ثابتًا بقدرة 5 فولت وحافظ على الأسلاك قصيرة وآمنة.

  • أضف مهلة إلى PulseIn() لمنع الحظر الطويل عند عدم عودة الصدى.

  • متوسط ​​أو متوسط-تصفية عدة قراءات للحد من الضوضاء.

  • للحصول على دقة أعلى، قم بتعويض درجة الحرارة لأن سرعة الصوت تتغير مع درجة حرارة الهواء.

التطبيقات الشائعة لمشاريع أجهزة الاستشعار بالموجات فوق الصوتية من Arduino

طلب كيف يتم استخدام HC-SR04
روبوت تجنب العوائق يكتشف الأشياء القريبة ويساعد الروبوت على تغيير اتجاهه.
مستشعر مسافة وقوف السيارات يقيس المسافة بين السيارة والعائق.
كشف مستوى السائل يقيس المسافة من المستشعر إلى سطح السائل دون ملامسة.
سلة المهملات الذكية يكتشف وجود يد أو جسم قريب ويؤدي إلى فتح الغطاء تلقائيًا.

ملخص

لاستخدام مستشعر الموجات فوق الصوتية HC-SR04 مع Arduino، قم بتوصيل VCC إلى 5V، وGND إلى GND، وTRIG بمنفذ إخراج رقمي، وECHO بمنفذ إدخال رقمي. أرسل نبضة تشغيل 10us، واقرأ مدة الصدى باستخدامpulIn()، واحسب المسافة باستخدام معادلة وقت الرحلة.

إن HC-SR04 غير مكلف وسهل الاستخدام ومناسب للعديد من مشاريع قياس المسافة في Arduino. للحصول على أفضل النتائج، انتبه إلى السطح المستهدف، وزاوية القياس، والمنطقة العمياء، والطاقة المستقرة، والتعامل مع المهلة، وتأثيرات درجة الحرارة.

الأسئلة المتداولة حول مستشعر الموجات فوق الصوتية HC-SR04 Arduino

كيف يعمل حساس الموجات فوق الصوتية HC-SR04 مع الاردوينو؟

يرسل Arduino نبضة بقوة 10us إلى طرف TRIG. يصدر HC-SR04 ثماني نبضات فوق صوتية بتردد 40 كيلو هرتز ويضبط دبوس ECHO على مستوى عالٍ حتى يعود الصوت المنعكس. يقيس Arduino وقت النبض هذا ويحسب المسافة.

ما هي صيغة المسافة لمشاريع HC-SR04 Arduino؟

الصيغة هي المسافة = المدة × سرعة الصوت / 2. بالسنتيمتر، صيغة Arduino الشائعة هي المسافة سم = المدة × 0.0343 / 2، حيث يتم قياس المدة بالميكروثانية.

لماذا نقسم نتيجة مستشعر الموجات فوق الصوتية على 2؟

وقت الصدى المقاس هو وقت الرحلة ذهابًا وإيابًا من المستشعر إلى الكائن والعودة إلى المستشعر. القسمة على 2 تعطي المسافة في اتجاه واحد بين المستشعر والكائن.

ما هي أطراف Arduino التي يجب أن أستخدمها مع TRIG وECHO؟

يمكنك استخدام معظم دبابيس Arduino الرقمية. في العديد من الأمثلة، يتم توصيل TRIG بالطرف الرقمي 9 ويتم توصيل ECHO بالطرف الرقمي 10. يجب أن يتطابق الرمز مع الأطراف المستخدمة في الأسلاك الخاصة بك.

لماذا يُرجع مستشعر الموجات فوق الصوتية HC-SR04 قيمًا صفرية أو عشوائية؟

تشمل الأسباب الشائعة الأسلاك غير المستقرة، أو طاقة 5 فولت غير مستقرة، أو أرقام دبوس TRIG أو ECHO الخاطئة، أو عدم وجود كائن في النطاق، أو الأسطح المستهدفة ذات الزاوية، أو المواد الناعمة، أو رؤوس المستشعر المسدودة، أو عدم وجود مهلة في وظيفةpulsIn().

ما هي المنطقة العمياء لجهاز استشعار الموجات فوق الصوتية HC-SR04؟

المنطقة العمياء هي الحد الأدنى للمسافة التي لا يمكن للوحدة قياسها بشكل موثوق. بالنسبة لـ HC-SR04، تبلغ المنطقة العمياء عادة حوالي 2 سم. الأجسام الأقرب من هذا قد تنتج قراءات غير مستقرة.

هل يستطيع HC-SR04 قياس مستوى الماء باستخدام الاردوينو؟

نعم، يمكن استخدام HC-SR04 في مشاريع مستوى الماء البسيطة غير المتصلة إذا كان المستشعر محميًا من الرطوبة ومثبتًا فوق سطح السائل. بالنسبة للخزانات الرطبة أو الخارجية أو الصناعية، يوصى باستخدام مستشعر بالموجات فوق الصوتية المقاوم للماء.

كيف يمكنني جعل قراءات مستشعر Arduino بالموجات فوق الصوتية أكثر استقرارًا؟

استخدم مصدر طاقة ثابتًا، وحافظ على المستشعر عموديًا على الهدف، وتجنب الأسطح الناعمة أو ذات الزوايا، وأضف مهلة النبض، وأخذ قراءات متعددة، واستخدم التصفية المتوسطة، واترك حوالي 60 مللي ثانية بين القياسات.

جدول المحتويات