آموزش راه اندازی سنسور جریان آب YF-S201 با آردوینو

فهرست مطالب

ویژگی های سنسور جریان آب YF-S201

YF-S201 سنسوری برای محاسبه میزان جریان عبوری آب است. اجزای اصلی تشکیل دهنده آن شامل یک بدنه پلاستیکی برای عبور جریان آب، یک روتور در تماس با آب و یک سنسور اثر هال می‌باشد. عملکرد این ماژول بر اساس اثر مغناطیسی هال است به طوری که این سنسور با هر بار دور کامل روتور توسط جریان آب یک پالس الکتریکی تولید می کند. با شمارش این پالس‌های تولیدی می‌توان میزان حجم آب عبوری از سنسور را محاسبه کرد.

رنج اندازه‌گیری جریان آب توسط این سنسور  1-30 L/Min و فشار مجاز آن تا 1.75 MPa می‌باشد. هر پالس الکتریکی تقریبا معادل عبور 2.25 میلی لیتر آب است.

نکته

برای محاسبه مقدار لیتر عبوری در واحد زمان از فرمول frequency(Hz)=7.5*Q(L/Min) استفاده می‌شود.

توجه

به جهت علامت فِلِش روی قطعه برای مسیر عبور آب دقت شود.

دیتاشیت سنسور جریان آب YF-S201 را می توانید از اینجا دانلود کنید.

معرفی پایه های (Pinout) سنسور جریان آب YF-S201

سنسور YF-S201 دارای 3 سیم به رنگ های قرمز، مشکی و زرد است. کاربرد این پایه ها به شرح زیر است:

  • VCC: تغذیه سنسور – 5 تا 24 ولت
  • GND: زمین
  • OUT: خروجی پالس سنسور

پین اوت (Pinout) این سنسور را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 1
سنسور جریان آب YF-S201 × 1
سیم جامپر × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی سنسور جریان آب YF-S201 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر، سنسور را به آردوینو وصل کنید.

گام دوم : کد برای اندازه‌گیری حجم عبوری آب بر حسب لیتر

کد زیر را روی برد آردوینو آپلود کنید.

    /*
  YF-S201-Water-Flow-Sensor
  made on 14 oct 2020
  by Amir Mohammad Shojaee @ Electropeak
  
Home
*/ double flow; //Liters of passing water volume unsigned long pulse_freq; void setup() { pinMode(2, INPUT); Serial.begin(9600); attachInterrupt(0, pulse, RISING); // Setup Interrupt } void loop () { flow = .00225 * pulse_freq; Serial.print(flow, DEC); Serial.println("L"); delay(500); } void pulse () // Interrupt function { pulse_freq++; }

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

میزان حجم عبوری آب در تصویر زیر مشخص است.

گام سوم : کد برای اندازه‌گیری دبی عبوری آب بر حسب لیتر بر دقیقه

کد زیر را روی برد آردوینو آپلود کنید.

    /*
  YF-S201-Water-Flow-Sensor
  modified on 14 oct 2020
  by Amir Mohammad Shojaee @ Electropeak
  
Home
based on www.hobbytronics.co.uk examples */ double flow; //Water flow L/Min int flowsensor = 2; unsigned long currentTime; unsigned long lastTime; unsigned long pulse_freq; void pulse () // Interrupt function { pulse_freq++; } void setup() { pinMode(flowsensor, INPUT); Serial.begin(9600); attachInterrupt(0, pulse, RISING); // Setup Interrupt currentTime = millis(); lastTime = currentTime; } void loop () { currentTime = millis(); // Every second, calculate and print L/Min if(currentTime >= (lastTime + 1000)) { lastTime = currentTime; // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min. flow = (pulse_freq / 7.5); pulse_freq = 0; // Reset Counter Serial.print(flow, DEC); Serial.println(" L/Min"); } }

در این برنامه دبی آب عبوری از سنسور بر حسب لیتر بر دقیقه اندازه‌گیری شده است. محاسبه دبی هر یک ثانیه یکبار انجام شده و نمایش داده‌ می‌شود.

میزان دبی عبوری آب بر حسب لیتر بر دقیقه در تصویر زیر مشخص است.

آموزش های مشابه

Comments (6)

  • Mahdiyar Reply

    سلام ممنون از این مقالتون
    سوالی که داشتم اینه که دامنه پالس های این سنسور چند ولت هست؟
    آبا برای این که بخوام از خروجی این سنسور برای مدار آنالوگ استفاده کنم دامنه ولتاژ پالس های این سنسور کافی هست؟

    آوریل 29, 2022 at 3:00 ق.ظ
    • مهران ملکی Reply

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

      آوریل 30, 2022 at 7:50 ب.ظ
  • sameri Reply

    بسیار عالی مهندس

    آگوست 16, 2022 at 11:32 ق.ظ
    • مهران ملکی Reply

      ممنون از لطف شما

      سپتامبر 12, 2022 at 9:59 ب.ظ
  • عقیل Reply

    سلام… طبق این کد دبی خروجی هر یک ثانیه یکبار برحسب لیتر در دقیقه نمایش داده میشه
    if(currentTime >= (lastTime + 1000))
    حالا اگه بخوام به جای هر 1000 میلی ثانیه مثلا هر 200 میلی ثانیه دبی رو نشون بده قطعا باید عدد 1000 رو به 200 تبدیل کرد!!
    خب من امتحان کردم و دبی اعمالی برای هر دو حالت یکی بود اما عدد خروجی در سریال یکی نبود!!!
    در واقع با کوچک شدن عدد از 1000 به 200 دبی نشون داده شده در سریال کمتر شد!!
    ایا راه دیگه ای هست برای اینکه هر 200 میلی ثانیه دبی رو نشون بده؟؟

    جولای 4, 2023 at 7:26 ب.ظ
    • کارن Reply

      سلام وقت بخیر
      من یه پروژه دارم که با توجه به صحبتاتون ممکنه بتونید کمک کنید ، مایل به همکاری هستید ؟؟

      ژانویه 12, 2024 at 3:02 ق.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.