راه اندازی ماژول تشخیص سطح آب با آردوینو
محتویات
سرریز شدن مخزن آب یک مشکل رایج است که منجر به هدر رفتن آب می شود. اگرچه راه حل های زیادی برای آن وجود دارد مانند شیرهای توپی که به طور خودکار جریان آب را با رسیدن به یک سطح مشخص قطع می کنند، اما به عنوان یک مهندس الکترونیک، راه حلی را ترجیح می دهم که شامل سنسورها و هوشمند سازی باشد. بنابراین در این آموزش قصد داریم یک سنسور سطح آب را به آردوینو برای اندازه گیری سطح آب وصل کنیم و در این فرآیند جزئیات این سنسور سطح آب و عملکرد آن را برای شما توضیح خواهیم داد.
پروژه های مرتبط:
- اندازه گیری سطح آب با آردوینو و سنسور JSN SR-40T
- کنترل سطح آب و روشن کردن خودکار پمپ با آردوینو و التراسونیک
- بررسی کیفیت آب با آردوینو و سنسور کدورت آب (کدر بودن)
- پروژه آبیاری اتوماتیک باغ با آردوینو و هشدار SMS
ماژول تشخیص سطح آب
اصل کار ماژول سنسور سطح آب بسیار شبیه به سنسور باران است. سنسور سطح آب دارای سه پایه است، با برق 5 ولت کار می کند و داده ها را در قالب آنالوگ ارائه می دهد. پین اوت سنسور سطح آب در زیر آمده است:
- VCC پایه منبع تغذیه سنسور تشخیص باران است که می تواند به 5 ولت منبع تغذیه متصل شود.
- GND پایه زمین برد است و باید به پایه GND آردوینو متصل شود.
- OUT پایه خروجی آنالوگ برد است که سیگنال آنالوگ را بین VCC و GND به ما می دهد.
سنسور سطح آب چگونه کار می کند؟
عملکرد سنسور سطح آب بسیار ساده و قابل درک است. PCB این سنسور از صفحات رسانای طولانی ساخته شده است. هنگامی که آب به حد معینی می رسد رسانایی بین دو صفحه تغییر می کند و با اندازه گیری تغییرات می توانیم سطح آب را اندازه گیری کنیم.
گیف بالا عملکرد سنسور سطح آب را در عمل نشان می دهد. همانطور که می بینید وقتی قطره آب داخل لیوان می افتد، سطح آب بالا می رود و ولتاژ روی پین خروجی نیز بالا می رود. این پدیده با ولتاژ خروجی نسبت مستقیم دارد. این امر به این دلیل اتفاق می افتد که بخش حسگر روی PCB از 10 صفحه رسانا ساخته شده است که 5 تای آنها مسیرهای برق و 5 مورد دیگر مسیرهای سنسور هستند.
مدار اتصال سنسور سطح آب آردوینو
حالا که به طور کامل متوجه شدیم سنسور سطح آب چگونه کار می کند، می توانیم تمام سیم های مورد نیاز را به برد آردوینو UNO وصل کنیم و در این قسمت از مقاله به همین موضوع می پردازیم!
در شکل بالا نمودار اتصال سنسور سطح آب به آردوینو نشان داده شده است. یک LED به پین PWM6 برد آردوینو وصل کرده ایم و پایه خروجی آنالوگ سنسور به پایه A0 وصل شده است. پین GND بین ماژول و ال ای دی مشترک است. همچنین VCC از پایه 5 ولت برد آردوینو گرفته شده است. ما آردوینو را طوری برنامه ریزی می کنیم که روشنایی LED بسته به سطح آب حس شده توسط سنسور تغییر کند.
کد آردوینو برای سنسور تشخیص سطح آب
کد سنسور سطح آب آردوینو در زیر توضیح داده شده است. کد بسیار ساده و قابل درک است. فقط باید داده های آنالوگ را از حسگر بخوانیم و می توانیم میانگین سطح آب را با ADC آردوینو تخمین بزنیم. کد کامل در فایل دانلودی انتهای صفحه قرار گرفته است.
کد خود را با اعلام دو ماکرو مقداردهی اولیه می کنیم، اولی مربوط به LED است یعنی در حقیقت جایی که یک LED را وصل می کنیم و دومی sensorPin است که از طریق آن داده های خارج شده از سنسور را می خوانیم.
#define ledPin 6 #define sensorPin A0
در مرحله بعد، تابع setup() خود را داریم. در تابع setup، ارتباط سریال را با 9600 baud مقداردهی اولیه می کنیم. ما همچنین ledPin را به عنوان خروجی تنظیم می کنیم و پایه را در ابتدا LOW می کنیم. به این ترتیب ال ای دی در ابتدای راه اندازی آردوینو، خاموش است.
void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); }
بعد، ما تابع loop خود را داریم. در تابع loop، با تابع analogRead وضعیت سنسور را میخواهیم و آن را در یک متغیر محلی به نام sensorValue ذخیره کردیم. سپس یک شرط if تعریف می کنیم که در آن بررسی می کنیم که آیا مقدار ورودی از سنسور بیشتر از 570 است یا خیر، اگر بیشتر است، مقدار را با کمک تابع map به محدوده 0 تا 255 تبدیل میکنیم (مقدار PWM تولید شده در برد آردوینو اونو 8 بیتی و از 0 تا 255 است). در نهایت مقدار بدست آمده را با analogWrite به ال ای دی میدهیم و نتیجه را در سریال مانیتور نیز چاپ میکنیم.
void loop() { int sensorValue = analogRead(sensorPin); if (sensorValue > 570) { int outputValue = map(sensorValue, 570, 800, 0, 255); Serial.println(outputValue); analogWrite(ledPin, outputValue); // generate PWM signal } }
گیف زیر عملکرد واقعی مدار سنسور سطح آب با آردوینو را نشان می دهد. در ابتدا می بینید که LED روی برد بورد خاموش است اما وقتی مقداری آب در لیوان میریزیم، روشنایی LED شروع به افزایش می کند و وقتی آب داخل لیوان پر شد LED با روشنایی کامل می درخشد.
یکی از مشکلاتی که در حین کار با این سنسور با آن مواجه شده ایم این است که قسمت پایینی این سنسور بسیار حساس است، در حالی که قسمت بالایی آنقدر حساس نیست. اگر سطح آب از قسمت پایینی عبور کند، حساسیت تقریباً به حداکثر می رسد و اشباع می شود.
موارد موجود در فایل : سورس
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام من مدار را درست کردم ولی اولش led روشن میشه
مشکلش چیه میشه راهنماییمکنید
سلام مهندس برنامه ایی که با سنسور آلتراسونیک انجام میشه رو داخل میزارین.ممنون
سلام عزیز
در سایت جستجو کنید موارد مختلفی موجود هست
سلام ، با D1 میشه انجامش داد؟
سلام عزیز
بله
لطفا اسم قطعات رو بگید .برای اینکه میخوام تهیه کنم
سلام عزیز
برد آردوینو اونو
ال ای دی
ماژول تشخیص سطح آب
مقاومت 220 اهم
برای چاه های 40متر این جواب نمیده باید چه کار کنیم
سلام عزیز
سنسور های التراسونیک قوی تر استفاوه کنید