O αισθητήρας ροής διαθέτει μία φτερωτή που παρεμβάλλεται στην ροή του νερού μέσα στον σωλήνα ύδρευσης. Όταν γυρίζει η φτερωτή παράγει ηλεκτρικούς παλμούς, χάρη στο φαινόμενο Χολ(Hall).
Από την συχνότητα αυτών των παλμών μπορούμε να έχουμε εικόνα σχετικά με την ποσότητα του νερού που περνάει μέσα από τον σωλήνα στη μονάδα του χρόνου.
Από την άλλη, αν δεν υπάρχει ροή, δεν δημιουργούνται παλμοί.
Στο παρακάτω πρόγραμμα, αν υπάρχουν παλμοί (δηλαδή ροή νερού) αυξάνουμε ένα μετρητή κάθε δευτερόλεπτο. Αν δεν υπάρχουν, ο μετρητής μηδενίζεται. Στόχος είναι να καταγραφεί η διάρκεια ροής, ώστε αν αυτή ξεπερνάει κάποιο χρονικό διάστημα, να δίνεται η πληροφορία διαρροής από κάποιο σημείο του δικτύου.
Το κύκλωμα φαίνεται παρακάτω:
- Το κόκκινο καλώδιο συνδέεται με τάση 5V
- Το μαύρο με την γείωση
- Το πράσινο σε ένα pin (στο συγκεκριμένο το 2) του Arduino που έχει οριστεί ως είσοδος.
Το πρόγραμμα φαίνεται παρακάτω:
volatile int flow_frequency; // Measures flow sensor pulses
// Calculated litres/hour
unsigned char flowsensor = 2; // Sensor Input
unsigned long currentTime;
unsigned long cloopTime;
int flow_counter=0;
int valve=5;
void flow () // Interrupt function
{
flow_frequency++;
}
void setup() {
// put your setup code here, to run once:
pinMode(flowsensor, INPUT);
pinMode(valve, OUTPUT);
digitalWrite(flowsensor, HIGH);
digitalWrite(valve, LOW);
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(flowsensor), flow, RISING); // Setup Interrupt
currentTime = millis();
cloopTime = currentTime;
}
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.