في هذه المقالة ، سنقوم بتوصيل جهاز قياس المدى بالموجات فوق الصوتية HC-SR04 بـ Arduino.
ضروري
- - اردوينو
- - جهاز استشعار بالموجات فوق الصوتية HC-SR04 ؛
- - توصيل الأسلاك.
تعليمات
الخطوة 1
يعتمد عمل محدد المدى بالموجات فوق الصوتية HC-SR04 على مبدأ تحديد الموقع بالصدى. يصدر نبضات صوتية في الفضاء ويستقبل إشارة تنعكس من عائق. يتم تحديد المسافة إلى الجسم من خلال وقت انتشار الموجة الصوتية إلى العائق والظهر.
يتم تشغيل الموجة الصوتية من خلال تطبيق نبضة موجبة لا تقل عن 10 ميكروثانية على الضلع TRIG من جهاز ضبط المدى. بمجرد انتهاء النبضة ، يصدر جهاز تحديد المدى دفقة من النبضات الصوتية بتردد 40 كيلو هرتز في الفراغ الموجود أمامه. في الوقت نفسه ، يتم إطلاق خوارزمية تحديد وقت التأخير للإشارة المنعكسة ، وتظهر وحدة منطقية في جزء ECHO من جهاز تحديد المدى. بمجرد أن يكتشف المستشعر الإشارة المنعكسة ، يظهر الصفر المنطقي على دبوس ECHO. تحدد مدة هذه الإشارة ("تأخير الصدى" في الشكل) المسافة إلى الجسم.
نطاق قياس المسافة لجهاز تحديد المدى HC-SR04 - ما يصل إلى 4 أمتار بدقة 0.3 سم.زاوية المراقبة - 30 درجة ، الزاوية الفعالة - 15 درجة. الاستهلاك الحالي في وضع الاستعداد هو 2 مللي أمبير ، أثناء التشغيل - 15 مللي أمبير.
الخطوة 2
يتم تنفيذ مصدر الطاقة لجهاز تحديد المدى بالموجات فوق الصوتية بجهد +5 فولت. يتصل الطرفان الآخران بأي منافذ رقمية في Arduino ، وسوف نتصل بـ 11 و 12.
الخطوه 3
لنكتب الآن رسمًا تخطيطيًا يحدد المسافة إلى العائق ويخرجه إلى المنفذ التسلسلي. أولاً ، قمنا بتعيين أرقام دبابيس TRIG و ECHO - هذه هي الدبابيس 12 و 11. ثم نعلن أن المشغل ناتج وصدى كمدخل. نقوم بتهيئة المنفذ التسلسلي على 9600 باود. في كل تكرار للحلقة () ، نقرأ المسافة ونخرجها إلى المنفذ.
تولد وظيفة getEchoTiming () نبضة إطلاق. إنها تخلق فقط نبضًا تيارًا يبلغ 10 ميكروثانية ، وهو محفز لبدء الإشعاع بواسطة أداة تحديد المدى لحزمة الصوت في الفضاء. ثم تتذكر الوقت من بداية إرسال الموجة الصوتية حتى وصول الصدى.
تحسب الدالة getDistance () المسافة إلى الكائن. من دورة الفيزياء المدرسية ، نتذكر أن المسافة تساوي السرعة مضروبة في الوقت: S = V * t. سرعة الصوت في الهواء 340 م / ث ، الوقت بالميكروثانية الذي نعرفه هو "دراتيون". للحصول على الوقت بالثواني ، اقسم على 1،000،000. نظرًا لأن الصوت ينتقل ضعف المسافة - من الكائن والعكس - فأنت بحاجة إلى تقسيم المسافة إلى النصف. لذلك اتضح أن المسافة إلى الكائن S = 34000 سم / ثانية * المدة / 1.000.000 ثانية / 2 = 1.7 سم / ثانية / 100 ، وهو ما كتبناه في الرسم التخطيطي. يقوم المتحكم الدقيق بإجراء الضرب بشكل أسرع من القسمة ، لذلك استبدلت "/ 100" بما يعادله "* 0 ، 01".
الخطوة 4
أيضًا ، تمت كتابة العديد من المكتبات للعمل مع أداة تحديد المدى بالموجات فوق الصوتية. على سبيل المثال ، هذا: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. يتم تثبيت المكتبة بطريقة قياسية: التنزيل وفك الضغط إلى دليل المكتبات الموجود في المجلد باستخدام Arduino IDE. بعد ذلك يمكن استخدام المكتبة.
بعد تثبيت المكتبة ، دعنا نكتب رسمًا جديدًا. نتيجة عملها هي نفسها - تعرض شاشة المنفذ التسلسلي المسافة إلى الكائن بالسنتيمتر. إذا كتبت float dist_cm = ultrasonic. Ranging (INC) ؛ في الرسم التخطيطي ، فسيتم عرض المسافة بالبوصة.
الخطوة الخامسة
لذلك ، قمنا بتوصيل جهاز تحديد المدى بالموجات فوق الصوتية HC-SR04 بـ Arduino واستلمنا البيانات منه بطريقتين مختلفتين: باستخدام مكتبة خاصة وبدونها.
تتمثل ميزة استخدام المكتبة في تقليل مقدار الشفرة بشكل كبير وتحسين قابلية قراءة البرنامج ، ولا يتعين عليك الخوض في تعقيدات الجهاز ويمكنك استخدامه على الفور. ولكن هذا أيضًا هو العيب: فأنت لا تفهم جيدًا كيفية عمل الجهاز وما هي العمليات التي تتم فيه. على أي حال ، ما هي طريقة الاستخدام متروك لك.