- مكونات
- وحدة الاستشعار بالموجات فوق الصوتية
- عمل مراقب منسوب المياه الأوتوماتيكي
- مخطط الدائرة وشرحها
- برمجة
في مشروع التحكم ومؤشر مستوى المياه الأوتوماتيكي المستند إلى Arduino ، سنقوم بقياس مستوى الماء باستخدام أجهزة الاستشعار بالموجات فوق الصوتية. يعتمد المبدأ الأساسي لقياس المسافة بالموجات فوق الصوتية على ECHO. عندما تنتقل الموجات الصوتية في البيئة ، فإنها تعود إلى الأصل مثل ECHO بعد الاصطدام بأي عائق. لذلك علينا فقط حساب وقت السفر لكلا الصوتين يعني وقت المغادرة ووقت العودة إلى الأصل بعد الضرب على أي عقبة. وبعد إجراء بعض الحسابات ، يمكننا الحصول على نتيجة هي المسافة. يتم استخدام هذا المفهوم في مشروع التحكم في المياه الخاص بنا حيث يتم تشغيل مضخة محرك المياه تلقائيًا عندما ينخفض مستوى الماء في الخزان. يمكنك أيضًا التحقق من دائرة مؤشر مستوى الماء البسيطة هذه للحصول على نسخة أبسط من هذا المشروع.
مكونات
- اردوينو اونو
- وحدة استشعار الموجات فوق الصوتية
- 16x2 LCD
- تتابع 6 فولت
- ULN 2003
- 7806
- PVT
- سلك نحاس
- بطارية 9 فولت أو 12 فولت
- توصيل الأسلاك
وحدة الاستشعار بالموجات فوق الصوتية
يستخدم مستشعر الموجات فوق الصوتية HC-SR04 لقياس المسافة في نطاق 2 سم إلى 400 سم بدقة 3 مم. تتكون وحدة الاستشعار من جهاز إرسال واستقبال بالموجات فوق الصوتية ودائرة التحكم.
تعمل وحدة الاستشعار بالموجات فوق الصوتية على ظاهرة صدى الصوت الطبيعية. يتم إرسال نبضة لحوالي 10us لتشغيل الوحدة. بعد ذلك ، ترسل الوحدة تلقائيًا 8 دورات من إشارة الموجات فوق الصوتية 40 كيلوهرتز وتتحقق من صدى الصوت. تعود الإشارة بعد الاصطدام بعائق ما مرة أخرى ويلتقطها جهاز الاستقبال. وبالتالي يتم حساب مسافة العائق من المستشعر ببساطة من خلال الصيغة المعطاة
المسافة = (الوقت × السرعة) / 2.
هنا قمنا بتقسيم ناتج السرعة والوقت على 2 لأن الوقت هو إجمالي الوقت المستغرق للوصول إلى العقبة والعودة مرة أخرى. وبالتالي فإن الوقت اللازم للوصول إلى العقبة هو نصف إجمالي الوقت المستغرق.
عمل مراقب منسوب المياه الأوتوماتيكي
العمل في هذا المشروع بسيط للغاية لقد استخدمنا وحدة استشعار فوق صوتية ترسل الموجات الصوتية في خزان المياه وتكتشف انعكاس الموجات الصوتية التي هي ECHO. بادئ ذي بدء ، نحتاج إلى تشغيل وحدة استشعار الموجات فوق الصوتية لنقل الإشارة باستخدام Arduino ثم الانتظار لاستقبال ECHO. يقرأ Arduino الوقت بين تشغيل وتلقي ECHO. نعلم أن سرعة الصوت تبلغ حوالي 340 م / ث. حتى نتمكن من حساب المسافة باستخدام صيغة معينة:
المسافة = (وقت السفر / 2) * سرعة الصوت
حيث تبلغ سرعة الصوت حوالي 340 متر في الثانية.
باستخدام هذه الطرق ، نحصل على مسافة من المستشعر إلى سطح الماء. بعد ذلك نحتاج إلى حساب مستوى الماء.
الآن نحن بحاجة لحساب الطول الإجمالي لخزان المياه. كما نعلم طول خزان المياه ، يمكننا حساب مستوى الماء عن طريق طرح المسافة الناتجة من الموجات فوق الصوتية من الطول الإجمالي للخزان. وسنحصل على مسافة مستوى الماء. الآن يمكننا تحويل مستوى الماء هذا إلى نسبة الماء ، ويمكننا عرضه على شاشة LCD. يظهر عمل مشروع مؤشر مستوى المياه الكامل في الرسم البياني أدناه.
مخطط الدائرة وشرحها
كما هو موضح في دائرة التحكم في مستوى الماء الموضحة أدناه ، فإن دبابيس "المشغل" و "الصدى" لوحدة المستشعر فوق الصوتي متصلة مباشرة بالدبوس 10 و 11 من اردوينو. شاشة LCD مقاس 16 × 2 متصلة بـ arduino في وضع 4 بت. يتم توصيل دبوس التحكم RS و RW و En مباشرة بدبوس اردوينو 7 و GND و 6. ويتم توصيل دبوس البيانات D4-D7 بـ 5 و 4 و 3 و 2 من اردوينو ، ويتم توصيل الجرس عند الطرف 12. 6 Volt relay is متصل أيضًا في الطرف 8 من اردوينو من خلال ULN2003 لتشغيل أو إيقاف تشغيل مضخة محرك المياه. يستخدم منظم الجهد 7805 أيضًا لتوفير 5 فولت للترحيل والدائرة المتبقية.
في هذه الدائرة ، يتم وضع وحدة الاستشعار بالموجات فوق الصوتية في الجزء العلوي من الدلو (خزان المياه) للتوضيح. ستقرأ وحدة المستشعر هذه المسافة بين وحدة المستشعر وسطح الماء ، وستظهر المسافة على شاشة LCD مع رسالة "Water Space in Tank is:". هذا يعني أننا نعرض هنا مكانًا فارغًا للمسافة أو الحجم للمياه بدلاً من مستوى الماء. بسبب هذه الوظيفة يمكننا استخدام هذا النظام في أي خزان مياه. عندما يصل مستوى الماء الفارغ إلى مسافة حوالي 30 سم ، يقوم Arduino بتشغيل مضخة المياه عن طريق قيادة التتابع. والآن ستعرض شاشة LCD "مستوى الماء المنخفض" "تم تشغيل المحرك" ، وسيبدأ مؤشر LED لحالة الترحيل في التوهج
الآن إذا وصلت المساحة الفارغة على مسافة حوالي 12 سم ، فإن اردوينو يقوم بإيقاف تشغيل التتابع وستظهر شاشة LCD رسالة "الخزان ممتلئ" "Motor Turned OFF". يصدر صوت صفير أيضًا لبعض الوقت وسيتم إيقاف تشغيل مؤشر LED لحالة الترحيل.
برمجة
لبرمجة Arduino لوحدة التحكم في مستوى المياه ، نحدد أولاً كل الدبوس الذي سنستخدمه في المشروع لربط الأجهزة الخارجية مثل المرحل وشاشات الكريستال السائل والجرس وما إلى ذلك.
# تعريف الزناد 10 # تعريف صدى 11 # تعريف المحرك 8 # تعريف الجرس 12
ثم نقوم بتهيئة جميع الأجهزة المستخدمة في المشروع.
lcd.begin (16.2) ؛ pinMode (الزناد ، الإخراج) ؛ pinMode (echo ، INPUT) ؛ pinMode (المحرك ، الإخراج) ؛ pinMode (الجرس ، الإخراج) ؛ lcd.print ("مستوى الماء") ؛ lcd.setCursor (0،1) ؛ lcd.print ("المؤشر") ؛ تأخير (2000) ؛
الآن قم بتهيئة وحدة استشعار الموجات فوق الصوتية واقرأ وقت إرسال واستقبال وقت الموجات فوق الصوتية أو الصوت باستخدام pulseIn (pin). ثم قم بإجراء العمليات الحسابية واعرض النتيجة على شاشة LCD مقاس 16 × 2 باستخدام الوظائف المناسبة.
digitalWrite (الزناد ، عالية) ؛ تأخير ميكروثانية (10) ؛ digitalWrite (الزناد ، منخفض) ؛ تأخير ميكروثانية (2) ؛ الوقت = pulseIn (echo، HIGH) ؛ المسافة = الوقت * 340/20000 ؛ lcd.clear () ؛ lcd.print ("ووتر سبيس إن") ؛ lcd.setCursor (0،1) ؛ lcd.print ("الخزان:") ؛ lcd.print (المسافة) ؛ lcd.print ("سم") ؛
بعد ذلك نتحقق من الظروف إذا كان خزان المياه ممتلئًا أو كان مستوى المياه منخفضًا ، ونتخذ الإجراءات وفقًا لذلك.
إذا (المسافة <12 && temp == 0) {digitalWrite (المحرك ، منخفض) ؛ الكتابة الرقمية (الجرس ، عالية) ؛ lcd.clear () ؛ lcd.print ("خزان المياه ممتلئ") ؛ lcd.setCursor (0،1) ؛ lcd.print ("تم إيقاف تشغيل المحرك") ؛ تأخير (2000) ؛ الكتابة الرقمية (الجرس ، منخفضة) ؛ تأخير (3000) ؛ درجة الحرارة = 1 ؛ } else if (Distance <12 && temp == 1) {digitalWrite (motor، LOW)؛ lcd.clear () ؛ lcd.print ("خزان المياه ممتلئ") ؛ lcd.setCursor (0،1) ؛ lcd.print ("تم إيقاف تشغيل المحرك") ؛ تأخير (5000) ؛ }