YF-S201 سنسور جریان آب آردوینو بخش دوم
در قسمت قبلی از آموزش راه اندازی سنسور اندازهگیری جریان آب YF-S201 به طریقهی اتصال آن به آردوینو و همچنین برنامه نویسی آن پرداختیم. در این قسمت قصد داریم فرمول ریاضی که به وسیلهی آن میتوان مقدار آب گذرنده از سنسور را محاسبه نمود را بررسی کنیم. در ادامهی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.
بخش اول آموزش راه اندازی سنسور اندازه گیری جریان آب yf s201
کمی کار ریاضی
اکنون نگاهی داریم به ریاضیات پشت پرده این پروژهی آردوینو .در عملیات آزمایشگاهی ، ما از یک سنسور جریان آب YF-S201 استفاده کردیم و مشاهدات و مقادیر مختلف اندازهگیری شده را یادداشت کردیم ( با دقت +-۱۰). نرخ جریان میتواند بصورت استنباطی براساس شیوه های مختلفی از جمله تغییر در سرعت و انرژی جنبشی تعیین گردد. در اینجا ما نرخ جریان را براساس تغیر در سرعت جریان آب تعریف کرده ایم. سرعت بسته به فشاری است که داخل خط لوله قرار دارد و به سنسور وارد میشود. از آنجا که ناحیه سطح مقطع لولهها شناخته شده و ثابت است ؛سرعت متوسط ، نشان دهنده سرعت جریان آب است.
رابطهی پایهای برای تعیین نرخ جریان مایعات در چنین مواردی وجود دارد که برابر است با :
که در رابطهی فوق :
- Q: نرخ کل جریان آب گذرنده از داخل لوله
- V : سرعت متوسط جریان
- A : سطح مقطع لوله است
*نکته : گرانروی چگالی و اصطکاک مایع در تماس با لوله نیز در نرخ جریان تاثیر گذار است.
به بیان دیگر:
ااکنون با فرمول های این ماژول آشنا شدید پس می توانید کد زیر را به درستی درک کنید.
volatile int flow_frequency; // اندازه گیری تعداد پالس ها unsigned int l_hour; // محاسبهی لیتر بر ساعت unsigned char flowsensor = 2; // Sensor Input unsigned long currentTime; unsigned long cloopTime; void flow() // تابع وقفه { flow_frequency++; } void setup() { pinMode(flowsensor, INPUT); digitalWrite(flowsensor, HIGH); // پین شماره ۲ به و وضعیت پول آپ تعریف میشود Serial.begin(9600); attachInterrupt(0, flow, RISING); // تنظیم وقفه و نسبت دادن تابع وقفه sei(); //فعال کردن وقفع currentTime = millis(); cloopTime = currentTime; } void loop() { currentTime = millis(); // در هر ثانیه مقدار آب گذرنده از سنسور بر حسب لیتر بر ساعت محاسبه می شود if (currentTime >= (cloopTime + 1000)) { cloopTime = currentTime; // Updates cloopTime // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min. l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour flow_frequency = 0; // Reset Counter Serial.print(l_hour, DEC); // Print litres/hour Serial.println(" L/hour"); } }
[…] برای ورود به بخش دوم این آموزش اینجا کلید کنید […]
سایت خوبی دارید موفق باشید
سلام اگه بخوایم دوتا سنسور yf را همزمان راه اندازی کنیم باید چیکار کنیم؟
با سلام
در این خصوص مشکلی ندارد، با توجه به اتصالاتی که در بخش اول آموزش سنسور YF اتصالات را انجام دهید. سپس کدها را برای سنسور دوم بایستی توسعه دهید.