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

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

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

How HC-SR04 ulrasonic sensor work

يتضمن هذا المشروع إعداد المستشعر مع لوحة أردوينو وكتابة برنامج بسيط لقراءة وعرض قياسات المسافة. سيستخدم البرنامج مكتبة NewPing لتبسيط التواصل مع المستشعر. إذا كنت تريد مرجعًا مرئيًا أو توضيحًا إضافيًا لأي خطوة، فتأكد من مراجعة الفيديو (في الفيديو عند 00:00).

شرح الأجهزة

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

يحتوي المستشعر على دبسان أساسيان: دبوس الزناد ودبوس الصدى. يستخدم دبوس الزناد لبدء القياس عن طريق إرسال نبضة عالية قصيرة، بينما يستقبل دبوس الصدى الإشارة المنعكسة ويقيس الوقت الذي تستغرقه عودة الصدى.

تفاصيل ورقة البيانات

المصنّعHC-SR04
رقم القطعةHC-SR04
جهد المنطق/الإدخال والإخراج5 فولت
جهد التغذية5 فولت
تيار الخرج (لكل قناة)15 ملي أمبير
التيار الذروي (لكل قناة)20 mA
إرشادات تردد PWMغير متوفر
عتبات منطق الإدخال0.3 V (منخفض)، 0.7 V (مرتفع)
هبوط الجهد / Rالمصب-المصدر (عند التشغيل) / التشبعغير متاح
الحدود الحرارية0°C إلى 70°C
حزمةوحدة
ملاحظات / متغيراتالمدى الأقصى 400 cm

  • تأكد من وجود مصدر طاقة مناسب (5 فولت).
  • حافظ على نظافة المستشعر للحصول على قراءات دقيقة.
  • استخدم دبوس الزناد لبدء القياسات.
  • لا تتجاوز الحد الأقصى للمسافة للحصول على نتائج موثوقة.
  • حافظ على مسار واضح لتنعكس الموجات فوق الصوتية.
  • استخدم مكثفات فكّ الارتباط بالقرب من دبابيس مزود الطاقة.
  • انتبه إلى الضوضاء المحيطة التي قد تتداخل مع القراءات.
  • اختبر مسافات مختلفة لتتعرف على المستشعر.

تعليمات الأسلاك

Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor

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

  • قم بتوصيل الـVCCوصل دبوس الـ HC-SR04 إلى دبوس 5V على الأردوينو.
  • قم بتوصيل الـGNDدبوس الـ HC-SR04 إلى دبوس أرضي على لوحة الأردوينو.
  • قم بتوصيل الـTRIGدبوس الـ HC-SR04 (الذي يكون عادة أزرق) إلى الدبوس الرقمي 12 على الأردوينو.
  • قم بتوصيل الـECHOوصل دبوس جهاز HC-SR04 (الذي يكون عادةً أخضر) إلى الدبوس الرقمي 11 على الأردوينو.

تأكد من أن التوصيلات مثبتة جيدًا لتجنّب أي قراءات متقطعة. إذا كنت تستخدم إعدادًا مختلفًا أو لديك أسلاك بديلة، ارجع إلى الفيديو لمزيد من الإرشادات (في الفيديو عند 00:00).

أمثلة على الكود وشرح خطوة بخطوة

يُهيِّئ الكود التالي مكتبة NewPing ويضبط الدبابيس لمستشعر HC-SR04. تشمل المكونات الرئيسية تعريف دبوس الزناد ودبوس الصدى، بالإضافة إلى أقصى مسافة.

#define TRIGGER_PIN  12  // Trigger pin
#define ECHO_PIN     11  // Echo pin
#define MAX_DISTANCE 200  // Max distance in cm

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Set up NewPing

في هذا المقتطف، الـTRIGGER_PINوECHO_PINتم ضبطها على الدبابيس الرقمية 12 و11 على التوالي. الـMAX_DISTANCEتم تعريفها بأنها 200 cm، وهي أقصى مسافة تهتم بقياسها.

بعد ذلك، لدينا دالة الإعداد حيث يتم تهيئة المراقب التسلسلي لعرض النتائج:

void setup() {
  Serial.begin(115200); // Initialize serial monitor
}

تفتح هذه الشيفرة الاتصال التسلسلي بمعدل باود 115200، مما يتيح لنا رؤية قياسات المسافة في المراقب التسلسلي.

أخيرًا، تقوم دالة الحلقة بقياس المسافة وتتحقق مما إذا كانت أقل من أو تساوي 12 سم:

void loop() {
  delay(50); // Wait between pings
  int distance = sonar.ping_cm(); // Measure distance
  if(distance <=12){ // Check distance
    Serial.println("Very close"); // Print if very close
  }
}

في الـloop()نُدخل تأخيرًا مقداره 50 مللي ثانية للتحكم في وتيرة القياسات. تُقاس المسافة، وإذا كانت أقل من أو تساوي 12 سم، فإنه يطبع "قريب جدًا" على المراقب التسلسلي.

للحصول على الكود الكامل، يُرجى الرجوع إلى قسم التحميل أسفل المقال.

عرض توضيحي / ما الذي تتوقعه

عند تشغيل البرنامج، سيقيس الأردوينو باستمرار المسافة إلى أقرب جسم. ينبغي أن يطبع المسافة بالسنتيمترات ويُنبّهك بعبارة Very close عندما يتم اكتشاف جسم ضمن 12 cm. إذا كان الجسم قريبًا جدًا، فقد تحصل على قراءات غير دقيقة أو لا تحصل على قراءات على الإطلاق، كما ذُكر في الفيديو (عند 10:00).

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

الطوابع الزمنية للفيديو

  • 00:00- مقدمة عن HC-SR04
  • 01:30توصيل المستشعر
  • 03:00- نظرة عامة على الكود
  • 05:00- تشغيل البرنامج
  • 07:30- قياس المسافات

الصور

Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
42-This is the Arduino code for the HC-SR04 ultrasonic distance sensor.
اللغة: C++
تم النسخ!

الأشياء التي قد تحتاجها

الموارد والمراجع

ملفات📁

لا توجد ملفات متاحة.