پروژه الکترونیکپروژه های آردوینو

کنترل سطح آب و روشن کردن خودکار پمپ با آردوینو و التراسونیک

سلام. کنترل سطح آب و روشن کردن خودکار پمپ با آردوینو و التراسونیک را آماده کردیم.

آموزش روشن کردن اتوماتیک پمپ آپ با Arduino

در این پروژه آردوینو قصد داریم با استفاده از سنسور التراسونیک، سطح آب را اندازه بگیریم و در صورت کمتر شدن از میزان مشخصی ، با استفاده از رله پمپ را فعال کنیم. هنگامی که امواج صوتی در محیط منتقل میشوند، پس از برخورد به جسمی، منعکس میشوند و برمیگردند. به این عمل اکو گفته میشود. بنابراین ما از زمان رفت و برگشت این موج صوتی میتوانیم فاصله ی سطح آب با بالای منبع را مشخص کنیم.

توضیحات سنسور التراسونیک HC-SR04

ما باید یه اطلاعات کلی نسبت به سنسور التراسونیک داشته باشیم. ما میدانیم که ارتعاش صدا نمیتواند از طریق جامدات نفوذ کند. بنابراین وقتی یک منبع صدا باعث ایجاد ارتعاش شود ، آن ارتعاش از طریق هوا با سرعت 220 متر در هر ثانیه حرکت میکند. همانطور که گفتیم این ارتعاش ها نمیتوانند از طریق جامدات نفوذ کنند ، یعنی وقتی به یک سطح مثل دیوار برخورد کنند ، با همان سرعت برمیگردند به سمت سنسور ، این تکنیک اکو (ECHO) نامگذاری شده است.

پروژه التراسونیک آردوینو
پروژه التراسونیک آردوینو

سنسور التراسونیک HC-SR04 یک سیگنال خروجی متناسب با فاصله بر اساس اکو فراهم می کند. سنسور در اینجا یک لرزش صدا را در محدوده سنسور ایجاد می کند، و بعد از فرستادن یک ارتعاش ، برای بازگشت صدا منتظر می ماند.

نحوه کار سنسور التراسونیک HC-SR04

فرستنده یک موج التراسونیک را در فرکانس 40 هرتز ساطع می کند ، این موج از طریق هوا عبور می کند و هنگامی که یک جسم را حس می کند باز میگردد. امواج برگشتی توسط گیرنده مشاهده می شود. اکنون می دانیم زمان لازم برای بازتاب و بازگشت این موج گرفته شده است و سرعت موج التراسونیک 3400 سانتی متر در ثانیه است. با استفاده از این اطلاعات و فرمول زیر میتوان فاصله را حساب کرد [ فاصله = سرعت موج * زمان ]

پروژه کنترل اتوماتیک سطح آب چطور کار میکند؟

کار این پروژه بسیار ساده است، ما از ماژول سنسور التراسونیک استفاده کرده ایم که امواج صوتی را در مخزن، به سمت آب (یا چیز دیگری) ارسال می کند و بازتاب امواج صوتی را که ECHO است تشخیص می دهد. اول از همه ما باید ماژول التراسونیک را به آردوینو متصل کنیم. سپس منتظر دریافت اکو باشیم. آردوینو زمان بین ارسال و دریافت اکو را بررسی میکند و سپس فاصله را محاسبه میکند. سرعت صدا حدود 340 متر بر ثانیه است. بنابراین میتوان فاصله را با استفاده از فرمول زیر محاسبه کرد.

فاصله = (زمان / 2) * سرعت صدا

سرعت صدا تقریباً 340 متر در ثانیه است.

با استفاده از این روش فاصله حسگر تا سطح آب را اندازه می گیریم. پس از آن باید سطح آب را محاسبه کنیم.

حال باید طول کل مخزن آب را محاسبه کنیم. از آنجا که طول مخزن آب را می دانیم، می توان سطح آب را با کم کردن فاصله حاصل از التراسونیک از طول کل مخزن، محاسبه کرد. اکنون می توانیم این سطح آب را به درصد آب تبدیل کنیم و می توانیم آن را بر روی LCD نمایش دهیم.

توضیحات شماتیک مدار

تصویر زیر شماتیک مدار این پروژه را نشان میدهد. همانطور که میبنید پین تریگر و اکو به طور مستقیم به پین 10 و 11 آردوینو متصل شده اند. یک ال سی دی کاراکتری 16*2 نیز در حالت 4 بیتی به Arduino متصل شده است. پین کنترل RS ، RW و En به طور مستقیم به پین 7 ، GND و 6 وصل می شوند. همچنن به پین 8 آردوینو یک ترانزیستور ULN2003 برای روشن و خاموش کردن پمپ موتور آب متصل شده است. یک تنظیم کننده ولتاژ 7805 نیز برای تهیه 5 ولت برای مدار رله و مدار استفاده شده است.

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (برنامه نویسی حرفه ای، ارتباط آردوینو با اندروید، ساخت ربات با آردوینو) یاد بگیرید، روی دوره آموزش آردوینو کلیک کنید.

آموزش روشن کردن اتوماتیک پمپ آپ با Arduino

در این مدار ماژول حسگر اولتراسونیک در قسمت بالای سطل (مخزن آب) قرار داده شده میشود. این ماژول فاصله بین ماژول  و سطح آب را می خواند و فاصله را روی صفحه LCD نشان می دهد. هنگامی که سطح آب خالی بیشتر از 12 سانتی متر می رسد، آردوینو با رله پمپ آب را روشن می کند. و سپس ال سی دی“LOW Water Level” “Motor turned ON” نشان می دهد.

حال اگر فضای خالی حدودا 12 سانتی متر شود، آردوینو رله را خاموش میکند و ال سی دی پیام “Tank is full” “Motor Turned OFF” را نمایش میدهد. همچنین ال ای دی خاموش میشود و بازر برای مدت کمی بوق میزند.

قطعات مورد نیاز

  1. آردوینو اونو
  2. ماژول سنسور التراسونیک HC-SR04
  3. ال سی دی کاراکتری 16*2
  4. رله 6 ولت
  5. ترانزیستور ULN2003
  6. رگولاتور 7805
  7. PVT
  8. باتری 9 ولت

برنامه نويسی پروژه کنترل سطح آب

کد کامل پروژه در فایل دانلودی انتهای مطلب قرار داده شده است. در اینجا قسمت های کمی از کد را توضیح میدهیم. برای برنامه نویسی آردوینو برای کنترل سطح آب، ابتدا تمام پین هایی را که می خواهیم در پروژه استفاده کنیم برای رله ، بازر ، التراسونیک و … را تعریف میکنیم.

#define trigger 10
#define echo 11
#define motor 8
#define buzzer 12

سپس تمام دستگاه های مورد استفاده در پروژه را پیکربندی اولیه می کنیم.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
 lcd.begin(16,2); // پیکربندی ال سی دی
 pinMode(trigger,OUTPUT); // تنظیم پین تریگر التراسونیک به عنوان خروجی
 pinMode(echo,INPUT); // تنظیم پین اکو التراسونیک به عنوان ورودی
 pinMode(motor, OUTPUT); // تنظیم پین موتور به عنوان خروجی
 pinMode(buzzer, OUTPUT); // تنظیم پین بازر به عنوان خروجی
 lcd.print("  Water Level "); // نمایش پیام دلخواه
 lcd.setCursor(0,1);
 lcd.print("   Indicator  "); // نمایش پیام دلخواه
 delay(2000);

سپس کار سنسور التراسونیک را آغاز میکنیم. یعنی پین تریگر آن را بالا (High) میبریم بعد از 10 میلی ثانیه آن را پایین (Low) می آوریم. سپس زمان را با استفاده از فعال شدن پین اکو تشخیص میدهیم و در متغیر time ذخیره میکنیم. سپس با توجه به فرمولی که در بالا تر گفته شد، زمان محاسبه شده را ضرب در 340 کرده و سپس بر 20000 تقسیم میکنیم تا فاصله بدست آید. سپس روی ال سی دی مینویسیم سطح آب مثلا 50 سانتی متر است.

digitalWrite(trigger,HIGH); // بالا بردن پین تریگر التراسونیک
 delayMicroseconds(10);
 digitalWrite(trigger,LOW); // پایین آوردن پین تریگر التراسونیک
 delayMicroseconds(2);
 time=pulseIn(echo,HIGH); // بالا شدن پین اکوالتراسونیک
 distance=time*340/20000; // فرمول محاسبه فاصله
 lcd.clear(); // پاکسازی ال سی دی
 lcd.print("Water Space In  "); // نمایش پیام مقدار فضا
 lcd.setCursor(0,1);
 lcd.print("Tank is: "); // نمایش پیام مقدار فضا
 lcd.print(distance); // نمایش عدد قضا
 lcd.print("Cm"); // نمایش واحد که اینجا سانتی متر را انتخاب کردیم

پس از آن شرایط را بررسی می کنیم که آیا مخزن آب پر است یا سطح آب کم است و بر همین اساس اقداماتی انجام می دهیم.

 if(distance<12 && temp==0) // اگر فاصله آب از سطح کمتر از 12 سانتی متر باشد 
 {
     digitalWrite(motor, LOW); // پین موتور خاموش
     digitalWrite(buzzer, HIGH); // بازر فعال
     lcd.clear();
     lcd.print("Water Tank Full "); // نمایش پپیام مخزن پر است
     lcd.setCursor(0,1);
     lcd.print("Motor Turned OFF"); // نمایش پیام موتور خاموش است
     delay(2000); // به مدت 2 ثانیه
     digitalWrite(buzzer, LOW); // خاموش شدن بازر
     delay(3000); // به مدت 3 ثانیه
     temp=1;
 }

موارد موجود در فایل : سورس کد ، شماتیک پروژه

پروژه ها رایگان هستند. برای دانلود فایل های پروژه باید در سایت عضو باشید. ثبت نام / ورود

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

8 نظر

  1. سلام می خواستم بدونم برای ساخت قسمت پمپ از چه وسایلی باید استفاده کرد ؟ میشه از موتور DC هم استفاده کرد ؟

    1. سلام. آردوینو یک رله رو فعال میکنه. شما میتونید پمپ یا موتور DC یا وسیله مورد نظرتون رو به رله متصل کنید تا برد آردوینو اون رو فعال کنه.

  2. سلام
    چرا مقدار رگولاتور و باتری با شبیه سازی فرق میکنه ؟ کدوم درست تره ؟

    1. سلام. در کجا دیدید که فرق میکرده ؟ از تصویر شماتیک استفاده کنید.

    1. سلام. احتمالا اشتباه درج شده قطعات در شماتیک قابل مشاهده هستند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *