سنتعرف في هذا المقال على الحساس HC-SR04 المعروف باسم حساس الموجات فوق الصوتية (حساس الألتراسونيك)، وآلية عمله وربطه مع لوحة NodeMCU، إضافةً إلى كيفية قياس المسافة باستخدامه.
لمحة عن HC-SR04
تقيس حساسات الألتراسونيك المسافة باستخدام الموجات فوق الصوتية، إذ يصدر رأس الحساس موجة فوق صوتية بتردد معين وينتظر ارتدادها عن الهدف، وبتسجيل الزمن الذي تستغرقه تلك الموجة المرسلة منذ لحظة إصدارها حتى استقبال الحساس لانعكاسها، يمكن حساب المسافة بين الحساس والجسم.
الخطوة 1: المتطلبات
قائمة المتطلبات للتنفيذ:
- المتطلبات المادية:
- لوحة NodeMCU
- حساسHC-SR04
- لوحة اختبار bread board
- أسلاك التوصيل Jumper wires
- كابل Micro USB
- المتطلبات البرمجية:
- بيئة التطوير المتكاملة للأردوينو (Arduino IDE)
الخطوة 2: المواصفات
مواصفات HC-SR04
- مصدر الطاقة: 5 فولت تيار مستمر.
- المدى: 2 سم – 500 سم.
- تردد الموجات فوق الصوتية: 40 كيلو هرتز.
الخطوة 3: آلية عمل HC-SR04
يحافظ الحساس على قيمة High للطرف (ECHO) لمدة زمنية تتوافق مع الوقت المستغرق لاستقبال انعكاس (صدى) الموجة المرسلة.
- يرسل الحساس دفعة من الموجات الصوتية، ويطبق جهداً كهربائياً على الطرف (ECHO) في نفس الوقت.
- يستقبل الحساس الموجات الصوتية المنعكسة ويصفّر الجهد المطبق على الطرف (ECHO).
يولد حساس الألتراسونيك نبضة لإرسال البيانات إلى لوحةNodeMCU أو المتحكم الصغري المستخدم تتناسب مع المسافة إلى الهدف (إشارة PWM تعديل عرض النبضة وهي الإشارة الناتجة عن الطرف ECHO)، ويتراوح زمنها بين 25 ميكرو ثانية و150 ميكرو ثانية بناءً على تلك المسافة، بينما يرسل الحساس نبضة زمنها 38 ميكرو ثانية إلى لوحة NodeMCU إذا لم يكن هناك عائق لتأكيد عدم اكتشاف أجسام ضمن مداه، ويكون زمن نبضة قدح الحساس حوالي 10 ميكروثانية.
طريقة حساب المسافة في الحساس HC-SR04
العلاقة:
D = 1/2 × T × C
حيث:
D: المسافة
T: الزمن بين إصدار الموجة الصوتية واستقبال ارتدادها
C: سرعة الصوت
(تضرب العَلاقة ب 2/1 لأن T هو زمن مسافة الذَّهاب والعودة)
الخطوة 4: توصيل الحساس بلوحة التحكم
تجرى توصيلات الدارة على النحو التالي:
- يوصل حساس HC-SR04 بلوحة الاختبار.
- يوصل طرف جهد التغذية (VCC) للحساس بطرف 3.3 فولت للوحة NodeMCU.
- يوصل طرف الأرضي (GND) للحساس بطرف GND للوحة NodeMCU.
- يوصل طرف القدح (Trigger) للحساس بطرف الدخل/الخرج الرقمي D4 للوحة NodeMCU.
- يوصل طرف الصدى (Echo) للحساس بطرف الدخل/الخرج الرقمي D3 للوحة NodeMCU.
يجب أيضاً تثبيت برنامَج Arduino IDE للبدء بالبرمجة.
الخطوة 5: كتابة البرنامَج
الكود البرمجي
لتحميل الكود البرمجي اضغط هنا.
أنشئ برنامجًا جديدًا ضمن Arduino IDE ثم انسخ البرنامَج (الكود) المكتوب أعلاه وقم بلصقه فيه، ثم اضغط على زر Upload، ويمكن تعديله بناءً على المشروع المطلوب أو تركه كما هو.
الخطوة 6: استعراض الخرج
وبعد إنهاء التوصيلات ورفع البرنامَج تظهر قراءات حساس الألتراسونيك على واجهة الاتصال التسلسلي Serial Monitor، وبذلك يصبح المشروع مُعدّ لقياس المسافة إلى جسم محدد.
ملاحظة: يمكننا إضافة ليد وصفارة إنذار (Buzzer) إلى المشروع ليبدو أكثر إإبداعًا
الخطوة 7: قياس المسافة
بما أن سرعة الصوت معروفة يمكن للوحة NodeMCU حساب المسافة بعد معرفة المدة التي استغرقتها الموجات الصوتية للانتقال من وحدة الحساس والعودة إليها (حسب المدة التي بقي فيها طرف الصدى ECHO مفعَّلاً HIGH). تبعًا للمعادلة التي ذكرناها سابقًا (وهذه الخطوات موضحة ضمن البرنامج )، وتظهر على واجهة الاتصال التسلسلي المسافة بين الحساس والجسم الموضوع أمامه فللحساس مجال قياس دقيق من (2سم -400سم).
المصدر: هنا
ترجمة:إيليا سليمان، مراجعة: يارا قاضون، تدقيق لغوي: بولا ابراهيم ، تصميم: علي العلي، تحرير: معتصم حفيان.