سنستعرض في هذا المقال كيفيّة تصميم ماسحة زُجاج أَمامي لسيّارة تَكتشف أوتوماتيكيّاً كثافة المطر الهاطل وتُنظّم عمليّة المسح، وذلك باستخدام أردوينو UNO وموديول حسّاس مطر يقيس كثافة الهطول، وتُعرض هذه القيمة على شاشة LCD الموصولة مع المتحكم، وأيضاً محرّك Servo يتحكّم بحركة الماسحة، إذ تُعدَّل سرعته وفقاً لشدّة المطر المقاسة من الحسّاس عن طريق توليد إشارات PWM مناسبة.

 ماسحة الزجاج باستخدام حساس مطر وأردوينو
ماسحة الزجاج باستخدام حساس مطر وأردوينو

أهداف المشروع

  1. قياس كميّة الأمطار.
  2. عرض كثافة المطر الهاطل على شاشة LCD.
  3. التّحكُّم بسرعة محرك ال Servo وفقاً لخرج الحسّاس.

تصميم الدّارة

قُم بتوصيل الدّارة كما هو موضَّح في الشّكل(2) أدناه.

 مخطط توصيل حساس المطر ومحرك Servo مع الأردوينو
مخطط توصيل حساس المطر ومحرك Servo مع الأردوينو

سنشرح التّوصيلات الهامّة كالتّالي:

سنستخدم في مشروعنا هذا حسّاس المطر MH-RD، وله أربع أرجل هي:

  • VCC جهد التّغذية.
  • A0 منفذ تشابهي، D0 منفذ رقمي.
  • GND للتّأريض.

تُوصّل كلّ من VCC وGND إلى منافذ التغذية الموافقة لها في الأردوينو، أمّا A0 و D0فهي المخارج التشابهية والرقمية للحساس على التوالي. ونظراً للتغيير المستمر في كمية سقوط المطر فسنستخدم المنفذ التشابهي A0 بدلاً من الرّقمي D0، حيث يوصل المخرج التشابهي للحساس إلى مدخل تشابهي في الأردوينو. وكما ذكرنا سابقاً فإنّ محرك ال Servo هنا للتحكّم بحركة الماسحة، وهو نوع خاص من المحرّكات الّتي لها عزم دوران عالي، حيث يكن تعديل اتجاه دورانه عن طريق توليد إشارات تعديل عرض النبضة (PWM) المناسبة، إذ يُوصل قطب البيانات الخاص بالمحرك إلى إحدى منافذ الأردوينو الذي يتمتع بخاصية  الPWM  (مثل المنفذ رقم 9).

تأتي الآن مرحلة توصيل شاشة LCD المسؤولة عن عرض كثافة هطول الأمطار، ولها عدّة أنواع، وكمثال بسيط عليها شاشة بقياس 16*2 المستخدمة في مشروعنا وهي من نوع JHD162A، يعتمد هذا النوع من الشاشات على مشغّل  HD44780 المصنَّعة من شركة هيتاشي (Hitachi)، تملك هذا الشاشة 16 رجل في حين يمكن تشغيلها بنمط 4 بت (4-bit) باستخدام 5 خطوط عنونة أو 8 بت (8-bit) مع كل خطوط العنونة الثمانية وهنا استخدمنا نمط 4-bit في شاشة الLCD.

ولتسهيل الاتّصال ما بين الأردوينو وشاشة LCD، استخدمنا مكتبة <LiquidCrystal.h> الموجودة في مكتبة الأردوينو، والمصمَّمة للتعامل مع شاشات LCD بالاستفادة من رقاقة  Hitachi HD44780 أو ما يوافقها.
تحوي ال LCD على أقطاب تحكم هي: RS،RW،EN توصل مباشرةً مع المنافذ 13، GND، 10 من الأردوينو.
وأيضاً قطب البياناتD4-D7 توصل مع المنافذ 7 و 6 و 5 و 4 من الأردوينو.

عند التشغيل، بحال وجدت الإشارة المطلوبة فإن محرك الServo سيدور محرّكاً معه الماسحة إلى الزاوية صفر الابتدائيّة، ويتحقّق المتحكم باستمرار من وجود إشارة على خرج حسّاس المطر، فإذا كانت قيمة خرج الحسّاس أكبر من القيمة الأصغريّة فالمحرّك سيعمل، علماً اَنَّ سرعة عملية المسح التي يقوم بها الServo تعتمد على خرج الحسّاس الذي يتوافق مع كثافة الهطول المعروضة على شاشة الLCD.

الكود البرمجي:التحميل من هنا

آليّة عمل الكود

يتحقّق البرنامج في البداية باستمرار من القيم التي يقرؤها الحسّاس، وللتعامل مع محرّك الServo بسهولة استخدمنا مكتبة تسمى “<Servo.h>” من أحد توابعها تابع يسمح بالتحكم بزاوية الدوران وهو:”(myservo.write(angle”. كذلك مكتبة خاصة بشاشات الLCD وتسمّى”<LiquidCrystal.h>”، نُهيّئ هذه المكتبات في القسم المخصّص لها في بيئة الأردوينو ولمرّة واحدة، يليها تعريف الأقطاب اللّازمة للتعامل مع ال LCD وذلك بالتعليمة: (LiquidCrystal lcd(RS,E,D4,D5,D6,D7″”.

نضبط زاوية الServo الابتدائيّة عند الدرجة صفر، ثُمَّ يقرأ الأردوينو خرج حسّاس المطر من خلال المداخل التشابهيّة  من خلال التابع:(analogRead(pin_number.
على سبيل المثال يحوّل هذا التابع “(analogRead(sensorPin” الجهد الذي يتراوح من 0v إلى 5v الآتي من المنفذ A0 إلى رقم صحيح يتراوح من 0 إلى 1023، وبهذه الطّريقة فإنّ جهد المنفذ A0 يُقارن بعدد ثابت صحيح يُحدد كثافة المطر الحاليّة.

يُشغّل الأردوينو محرّك الServo عندما تتجاوز قيمة خرج الحسّاس حدّاً مُعيَّناً، إذ تختلف سرعة عمل المحرّك باختلاف خرج الحسّاس، وتُحدّد هذه السرعة بالتّعليمة “(wipe(speed” التي يعرفها المستخدم بالوقت نفسه الذي ستعرض فيه كثافة هطول الأمطار على شاشة الLCD باستخدام تعليمة الطّباعة (lcd.print(“Low/Medium/High”.


المصدر:هنا
ترجمة: إسراء إسماعيل ,مراجعة: مي همدر ,تدقيق لغوي: سلام أحمد ،تصميم : علي العلي ،تحرير: علي العلي.