Απλό ψηφιακό κύκλωμα μετρητή ροής νερού χρησιμοποιώντας το Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε έναν ψηφιακό μετρητή ροής νερού χρησιμοποιώντας το Arduino και οθόνη LCD 16 x 2. Θα ρίξουμε μια ματιά στον αισθητήρα ροής νερού YF-S201, την κατασκευή και τη λειτουργία του και τον τρόπο διασύνδεσης με το Arduino για την εξαγωγή ορισμένων χρήσιμων μετρήσεων.

Το προτεινόμενο έργο μπορεί να μετρήσει τον ρυθμό ροής νερού σε λίτρα / λεπτό και τη συνολική ροή νερού σε λίτρα.



Ας ρίξουμε μια ματιά στον αισθητήρα ροής νερού YF-S201.

Εικόνα του YF-S201:

Το YF-S201 είναι ένα Βάσει Hall Effect αισθητήρας νερού. Έχει τρεις ακροδέκτες 5V (ονομαστική τάση λειτουργίας), GND και έξοδο. Το + 5V είναι κόκκινο καλώδιο, το μαύρο είναι GND και το κίτρινο εξέρχεται.



Ο αισθητήρας δίνει συχνότητα ανάλογη της ροής του νερού. Ο αισθητήρας YF-S201 μπορεί να μετρήσει από 1 λίτρο / λεπτό έως 30 λίτρα / λεπτό. Η πίεση του νερού πρέπει να είναι μικρότερη ή ίση με 1,75 MPa.

Το νερό μπορεί να εγχυθεί από το ένα άκρο και το νερό ρέει μέσω του άλλου άκρου.

Ο αισθητήρας μπορεί να τοποθετηθεί μετά την κύρια βαλβίδα της δεξαμενής αν θέλετε να μετρήσετε τη ροή του νερού σε ένα δίκτυο σωλήνων νερού ή μπορείτε να τοποθετήσετε λίγο πριν από μια βρύση νερού για να μετρήσετε τη ροή του νερού μιας βρύσης.

Η τοποθέτηση του αισθητήρα μπορεί να γίνει οπουδήποτε ανάλογα με τις ανάγκες του χρήστη, αλλά πρέπει να προσέξετε για να αποφύγετε τη διαρροή νερού.

Ο αισθητήρας έχει ένα μαγνήτης και αισθητήρας Hall Effect αν ρίξουμε μια ματιά στις πλευρές του αισθητήρα ροής νερού, μπορούμε να δούμε μια πλαστική τουρμπίνα στην πορεία της ροής του νερού.

Ένας στρογγυλός μαγνήτης είναι ενσωματωμένος στο κέντρο του στροβίλου και ο αισθητήρας Hall Effect σφραγίζεται και προστατεύεται από την υγρασία και τοποθετείται πάνω από τον μαγνήτη. Ο αισθητήρας Hall Effect παράγει έναν παλμό για κάθε περιστροφή της τουρμπίνας.

Κυματομορφή ροής νερού σε σειριακό σχεδιαστή

Μπορούμε να δούμε τους παλμούς που παράγονται από τον αισθητήρα ροής νερού σε σειριακό σχεδιαστή του arduino IDE, που φαίνεται παρακάτω (Χρήση παλμογράφου Arduino Single channel).

Έχουμε αέρα με αέρα μέσω του αισθητήρα περιστρέψτε την τουρμπίνα ως δοκιμή και η παραγόμενη κυματομορφή φαίνεται παραπάνω. Η πυκνότερη κυματομορφή στην αριστερή πλευρά αντιπροσωπεύει υψηλότερη συχνότητα και ταχύτερη περιστροφή του στροβίλου, ενώ η λιγότερο πυκνή κυματομορφή στη δεξιά πλευρά υποδηλώνει το αντίστροφο.

Μια σταθερή ροή νερού δίνει συνεπή έξοδο συχνότητας.

Πρεπει να μετατρέψτε τη συχνότητα σε κλίμακα λίτρου / λεπτού. Για να γίνει αυτό, ο κατασκευαστής έχει δώσει έναν τύπο:

Ρυθμός ροής νερού (λίτρο / λεπτό) = συχνότητα / 7.5

Επομένως, πρέπει να μετρήσουμε τη δημιουργούμενη συχνότητα και να εφαρμόσουμε τον παραπάνω τύπο στον κώδικα προγράμματος.

Τεχνικές προδιαγραφές του YF-S201:

· Ακρίβεια: +/- 10%, εάν χρειάζεστε καλύτερη ακρίβεια, πρέπει να βαθμονομήσουμε.

· Θερμοκρασία λειτουργίας: -25 έως + 80 βαθμούς Κελσίου.

· Υγρασία εργασίας: 35% έως 80% RH.

· Κύκλος λειτουργίας παραγωγής: 50% +/- 10%.

· Μέγιστη πίεση νερού: 1,75 MPa.

· Παλμοί ανά λίτρο: 450.

· Μέγιστη τρέχουσα κλήρωση: 15 mA στα 5V

Αυτό ολοκληρώνει τον αισθητήρα ροής νερού YF-S201.

Τώρα ας προχωρήσουμε στο σχηματικό.

Σχηματικό διάγραμμα:

Ο πείρος εξόδου του αισθητήρα ροής νερού είναι συνδεδεμένος στο A0 του Arduino. Χρησιμοποιήστε το Ποτενσιόμετρο 10Κ για ρύθμιση της αντίθεσης οθόνης. Καλώδιο του Arduino και οθόνη LCD σύμφωνα με το παραπάνω διάγραμμα.

Κωδικός προγράμματος:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time = 0
float frequency = 0
float waterFlow = 0
float total = 0
float LS = 0
const int input = A0
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Water Flow Meter')
lcd.setCursor(0,1)
lcd.print('****************')
delay(2000)
pinMode(input,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,100)
}
void loop()
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000/Time
waterFlow = frequency/7.5
LS = waterFlow/60
if(frequency >= 0)
{
if(isinf(frequency))
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: 0.00')
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
else
{
total = total + LS
Serial.println(frequency)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: ')
lcd.print(waterFlow)
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Πρωτότυπο συγγραφέα:

Το 'L / Min' υποδεικνύει τον τρέχοντα ρυθμό ροής νερού και το 'Σύνολο' δείχνει το συνολικό νερό που ρέει από το κύκλωμα ενεργοποιημένο.

Μπορείτε επίσης να ρέσετε υγρά των οποίων η τιμή ιξώδους είναι κοντά στο νερό.

Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με αυτόν τον ψηφιακό μετρητή ροής νερού χρησιμοποιώντας το Arduino, μη διστάσετε να εκφράσετε στην ενότητα σχολίων, ενδέχεται να λάβετε μια γρήγορη απάντηση.




Προηγούμενο: Joystick Controlled 2.4 GHz RC Car Using Arduino Επόμενο: Κάντε αυτόν τον μετατροπέα Buck χρησιμοποιώντας το Arduino