- רכיבים נדרשים
- חיישן זרימת מים YFS201
- תרשים מעגל
- קוד חיישן זרימת מים של ארדואינו
- חיישן זרימת מים של Arduino עובד
אם ביקרתם אי פעם בחברות ייצור רחבות היקף, הדבר הראשון שתבחינו הוא שכולן אוטומטיות. תעשיות שתייה קלה ותעשיות כימיות צריכות למדוד ולכמת ללא הרף את הנוזלים שהם מטפלים בהם במהלך תהליך אוטומציה זה, והחיישן הנפוץ ביותר המשמש למדידת זרימת נוזל הוא חיישן זרימה.. על ידי שימוש בחיישן זרימה עם מיקרו-בקר כמו Arduino, אנו יכולים לחשב את קצב הזרימה, ולבדוק את נפח הנוזל שעבר בצינור, ולשלוט בו כנדרש. מלבד תעשיות ייצור, ניתן למצוא חיישני זרימה גם בתחום החקלאות, עיבוד מזון, ניהול מים, תעשיית כרייה, מיחזור מים, מכונות קפה וכו '. בנוסף, חיישן זרימת מים יהווה תוספת טובה לפרויקטים כמו מתקן מים אוטומטי. ומערכות השקיה חכמות בהן אנו צריכים לפקח ולשלוט בזרימת הנוזלים.
בפרויקט זה אנו הולכים לבנות חיישן זרימת מים באמצעות Arduino. אנו נתממשק את חיישן זרימת המים עם Arduino ו- LCD, ונתכנת אותו להצגת נפח המים שעבר דרך השסתום. עבור פרויקט מסוים זה, אנו נשתמש בחיישן זרימת המים YF-S201, המשתמש באפקט אולם כדי לחוש את קצב הזרימה של הנוזל.
רכיבים נדרשים
- חיישן זרימת מים
- ארדואינו UNO
- LCD (16x2)
- מחבר עם הברגה פנימית
- חוטי חיבור
- צינור
חיישן זרימת מים YFS201
לחיישן 3 חוטים אדומים, צהובים ושחורים כפי שמוצג באיור למטה. החוט האדום משמש למתח אספקה שנע בין 5V ל- 18V והחוט השחור מחובר ל- GND. החוט הצהוב משמש לפלט (פולסים), אותו ניתן לקרוא על ידי MCU. חיישן זרימת המים מורכב מחיישן גלגל שיניים המודד את כמות הנוזלים שעברה דרכו.
העבודה של חיישן זרימת המים YFS201 היא פשוט להבנה. חיישן זרימת המים פועל על פי העיקרון של אפקט אולם. אפקט הול הוא ייצור ההפרש הפוטנציאלי על פני מוליך חשמלי כאשר מוחל שדה מגנטי בכיוון הניצב לזרימת הזרם. חיישן זרימת המים משולב עם חיישן אפקט הול מגנטי, המפיק דופק חשמלי בכל מהפכה. תכנונו בצורה כזו שחיישן אפקט האולם אטום מהמים, ומאפשר לחיישן להישאר בטוח ויבש.
התמונה של מודול החיישן YFS201 לבדה מוצגת למטה.
כדי להתחבר לצינור ולחיישן זרימת המים, השתמשתי בשני מחברים עם חוט נקבה כמוצג להלן.
על פי מפרט YFS201, הזרם המקסימלי שהוא שואב ב -5 וולט הוא 15mA, וקצב זרימת העבודה הוא 1 עד 30 ליטר לדקה. כאשר הנוזל זורם דרך החיישן, הוא יוצר קשר עם סנפירי גלגל הטורבינה, המונח בנתיב הנוזל הזורם. פיר גלגל הטורבינה מחובר לחיישן אפקט הול. בשל כך, בכל פעם שזורמים מים דרך השסתום הם מייצרים פולסים. כעת, כל שעלינו לעשות הוא למדוד את זמן הפלוסים או לספור את מספר הפולסים בשנייה אחת ואז לחשב את קצב הזרימה בליטר לשעה (L / Hr) ואז להשתמש בנוסחת המרה פשוטה כדי למצוא את הנפח מהמים שעברו דרכו. כדי למדוד את הפולסים אנו הולכים להשתמש ב- Arduino UNO. התמונה למטה מראה לך את פינוי של חיישן זרימת המים.
תרשים מעגל
דיאגרמת מעגל חיישן זרימת מים מוצג למטה כדי להתממשק חיישן זרימת מים LCD (16x2) עם Arduino. אם אתה לא חדש ב- Arduino ו- LCD, אתה יכול לשקול לקרוא את המאמר Interfacing Arduino ו- LCD.
החיבור של חיישן זרימת המים ו- LCD (16x2) עם הארדואינו ניתן להלן בפורמט טבלה. שים לב שהסיר מחובר בין 5V ל- GND וסיכה 2 של הסיר מחוברת עם סיכת V0 של ה- LCD.
S.NO |
סיכת חיישן זרימת מים |
סיכות ארדואינו |
1 |
חוט אדום |
5V |
2 |
שָׁחוֹר |
GND |
3 |
צהוב |
A0 |
S.No |
LCD |
ארדואינו |
1 |
Vss |
GND (מסילה קרקעית של קרש לחם) |
2 |
VDD |
5V (מסילה חיובית של קרש הלחם) |
3 |
לחיבור עם V0 בדוק את ההערה לעיל |
|
4 |
RS |
12 |
5 |
RW |
GND |
6 |
ה |
11 |
7 |
D7 |
9 |
8 |
D6 עד D3 |
3 עד 5 |
השתמשתי בקרש לחם, וברגע שהחיבור נעשה בהתאם לתרשים המעגל שמוצג לעיל, מערך הבדיקות שלי נראה בערך כזה.
קוד חיישן זרימת מים של ארדואינו
קוד חיישן זרימת המים השלם של ארדואינו ניתן בתחתית הדף. ההסבר לקוד הוא כדלקמן.
אנו משתמשים בקובץ הכותרת של ה- LCD, מה שמקל על ההתממשקות שלנו עם ה- LCD עם Arduino, והסיכות 12,11,5,4,3,9 מוקצות להעברת נתונים בין LCD ל- Arduino. סיכת הפלט של החיישן מחוברת לסיכה 2 של Arduino UNO.
תדר זרימה אינטליטיבי; // מודד פעימות חיישן זרימה // ליטר / שעה נפח צף = 0.0, l_minute; חיישן זרם לא חתום = 2; // קלט חיישן זרם זמן לא חתום; זמן cloopTime לא חתום; #לִכלוֹל
פונקציה זו היא שגרת שירות הפסקה, והיא תיקרא בכל פעם שיש אות הפסקה ב- pin2 של Arduino UNO. עבור כל אות הפסקה, ספירת משתנות הזרימה תוגדל ב- 1. לפרטים נוספים על ההפרעות ועבודתן, תוכלו לקרוא מאמר זה על הפרעות בארדוינו.
זרימת חלל () // הפסקת הפונקציה { flow_frequency ++; }
בהתקנת הריק, אנו אומרים ל- MCU שהסיכה 2 של ה- Arduino UNO משמשת כקלט על ידי מתן פקודה pinMode (pin, OUTPUT). על ידי שימוש בפקודה attachInterrupt, בכל פעם שיש עלייה באות בסיכה 2, נקראת פונקציית הזרימה. זה מגדיל את הספירה במשתנה flow_frequency ב- 1. הזמן הנוכחי ו- cloopTime משמשים להפעלת הקוד בכל שנייה אחת.
התקנת חלל () { pinMode (חיישן זרימה, INPUT); digitalWrite (חיישן זרימה, HIGH); Serial.begin (9600); lcd.begin (16, 2); attachInterrupt (digitalPinToInterrupt (חיישן זרימה), זרימה, עלייה); // הגדרת הפרעה lcd.clear (); lcd.setCursor (0,0); lcd.print ("מד זרימת מים"); lcd.setCursor (0,1); lcd.print ("מעגל עיכול"); currentTime = מילי (); cloopTime = currentTime; }
פונקציית ה- if מבטיחה שבכל שנייה הקוד יפעל בתוכה. בדרך זו, אנו יכולים לספור את מספר התדרים שמייצר חיישן זרימת המים לשנייה. מאפייני הדופק של קצב הזרימה מגליון הנתונים נקבעים שהתדר הוא 7.5 כפול קצב הזרימה. אז קצב הזרימה הוא תדר / 7.5. לאחר מציאת קצב הזרימה שהוא בליטר / דקה, חלקו אותו ב 60 כדי להמיר אותו לליטר / שניה. ערך זה מתווסף למשתנה vol לכל שנייה אחת.
לולאה בטלה () { currentTime = millis (); // בכל שנייה, חישבו והדפיסו ליטרים / שעה אם (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // עדכונים cloopTime אם (flow_frequency! = 0) { // Frequency Pulse (Hz) = 7.5Q, Q הוא קצב הזרימה ב- L / min. l_minute = (flow_frequency / 7.5); // (תדירות דופק x 60 דקות) / 7.5Q = קצב זרימה ב- L / שעה lcd.clear (); lcd.setCursor (0,0); lcd.print ("דרג:"); lcd.print (l_minute); lcd.print ("L / M"); l_minute = l_minute / 60; lcd.setCursor (0,1); vol = vol + l_minute; lcd.print ("כרך:"); lcd.print (כרך); lcd.print ("L"); זרימת_תדר = 0; // אפס דלפק סידורי.דפוס (l_minute, DEC); // הדפס ליטר / שעה Serial.println ("L / Sec"); }
הפונקציה אחרת פועלת כשאין תפוקה מחיישן זרימת המים בפרק הזמן הנתון.
אחרת { lcd.clear (); lcd.setCursor (0,0); lcd.print ("דרג:"); lcd.print (flow_frequency); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("כרך:"); lcd.print (כרך); lcd.print ("L"); }
חיישן זרימת מים של Arduino עובד
בפרויקט שלנו חיברנו את חיישן זרימת המים לצינור. אם שסתום היציאה של הצינור סגור, התפוקה של חיישן זרימת המים היא אפס (ללא פולסים). לא נראה שום אות הפסקה בסיכה 2 של הארדואינו, וספירת תדירות הזרימה תהיה אפס. במצב זה, הקוד שנכתב בתוך הלולאה אחרת יעבוד.
אם שסתום היציאה של הצינור נפתח. המים זורמים דרך החיישן, שבתורו מסובב את הגלגל בתוך החיישן. במצב זה, אנו יכולים לצפות בפולסים שנוצרים מהחיישן. פעימות אלה ישמשו כאות הפסקה ל- UNO Arduino. עבור כל אות הפסקה (קצה עולה), ספירת המשתנה flow_frequency תוגדל באחת. הזמן הנוכחי ומשתנה cloopTIme מבטיחים שבכל שנייה אחת הערך של flow_frequency נלקח לחישוב קצב הזרימה והנפח. לאחר סיום החישוב, המשתנה flow_frequency מוגדר לאפס וההליך כולו מתחיל מההתחלה.
את העבודה המלאה ניתן למצוא גם בסרטון המקושר בתחתית עמוד זה. מקווה שנהנית מההדרכה ונהנית ממשהו שימושי, אם יש לך בעיות, השאיר אותן בסעיף ההערות או השתמש בפורומים שלנו לשאלות טכניות אחרות.