Πίνακας περιεχομένων:
- Βήμα 1: Αρχή
- Βήμα 2: Αισθητήρας, παροχή ισχύος και ελεγκτής
- Βήμα 3: Το επόπτη IC
- Βήμα 4: Ο πίνακας τυπωμένων κυκλωμάτων (PCB)
- Βήμα 5: Κωδικός
- Βήμα 6: Εγκατάσταση σε δεξαμενή
Βίντεο: UltraSonic Liquid Level Controller: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Όπως πιθανώς γνωρίζετε, το Ιράν έχει ξηρό καιρό και υπάρχει έλλειψη νερού στη χώρα μου. Μερικές φορές, ειδικά το καλοκαίρι, φαίνεται ότι η κυβέρνηση κόβει το νερό. Έτσι, τα περισσότερα διαμερίσματα διαθέτουν δεξαμενή νερού. Υπάρχει μια δεξαμενή 1500 λίτρων στο διαμέρισμά μας που παρέχει νερό. Επίσης, υπάρχουν 12 κατοικίες στο διαμέρισμά μας. Ως αποτέλεσμα, μπορεί να αναμένεται ότι η δεξαμενή θα αδειάσει πολύ σύντομα. Υπάρχει μια αντλία νερού συνδεδεμένη στη δεξαμενή που στέλνει νερό στο κτίριο. Κάθε φορά που η δεξαμενή είναι άδεια, η αντλία λειτουργεί χωρίς νερό. Αυτή η κατάσταση προκαλεί αύξηση της θερμοκρασίας του κινητήρα και κατά τη διάρκεια του χρόνου, μπορεί να προκαλέσει βλάβη της αντλίας. Πριν από λίγο καιρό, αυτή η βλάβη της αντλίας συνέβη για δεύτερη φορά για εμάς και αφού ανοίξαμε τον κινητήρα, είδαμε ότι είχαν καεί τα καλώδια πηνίου. Αφού αντικαταστήσαμε την αντλία, για να αποφύγω ξανά αυτό το πρόβλημα, αποφάσισα να φτιάξω έναν ελεγκτή στάθμης νερού. Σχεδίασα να κάνω ένα κύκλωμα για να κόψω την τροφοδοσία της αντλίας κάθε φορά που το νερό έφτανε κάτω από το χαμηλό όριο στη δεξαμενή. Η αντλία δεν θα λειτουργήσει μέχρι να ανέβει το νερό σε υψηλό όριο. Μετά την υπέρβαση του υψηλού ορίου, το κύκλωμα θα συνδέσει ξανά την τροφοδοσία. Στην αρχή, έψαξα στο διαδίκτυο για να δω αν μπορώ να βρω ένα κατάλληλο κύκλωμα. Ωστόσο, δεν βρήκα κάτι κατάλληλο. Υπήρχαν δείκτες νερού με βάση το Arduino, αλλά δεν μπόρεσαν να λύσουν το πρόβλημά μου. Ως αποτέλεσμα, αποφάσισα να σχεδιάσω τον ελεγκτή στάθμης νερού. Ένα πακέτο all-in-one με απλή γραφική διεπαφή χρήστη για τον καθορισμό παραμέτρων. Επίσης, προσπάθησα να λάβω υπόψη τα πρότυπα EMC για να είμαι σίγουρος ότι η συσκευή λειτουργεί έγκυρα σε διαφορετικές καταστάσεις.
Βήμα 1: Αρχή
Μάλλον γνωρίζετε την αρχή πριν. Όταν το σήμα παλμού υπερήχων εκπέμπεται προς ένα αντικείμενο, αντανακλάται από το αντικείμενο και η ηχώ επιστρέφει στον αποστολέα. Εάν υπολογίσετε τον χρόνο που διανύει ο παλμός υπερήχων, μπορείτε να βρείτε την απόσταση του αντικειμένου. Στην περίπτωσή μας, το στοιχείο είναι το νερό.
Σημειώστε ότι όταν βρείτε την απόσταση από το νερό, υπολογίζετε τον όγκο του άδειου χώρου στη δεξαμενή. Για να λάβετε τον όγκο του νερού, πρέπει να αφαιρέσετε τον υπολογισμένο όγκο από τον συνολικό όγκο της δεξαμενής.
Βήμα 2: Αισθητήρας, παροχή ισχύος και ελεγκτής
Σκεύη, εξαρτήματα
Για τον αισθητήρα, χρησιμοποίησα αδιάβροχο αισθητήρα υπερήχων JSN-SR04T. Η ρουτίνα εργασίας είναι σαν το HC-SR04 (ηχώ και τριγωνάκι).
Διόπτρα:
- Απόσταση: 25 cm έως 450 cm
- Τάση λειτουργίας: DC 3.0-5.5V
- Ρεύμα λειτουργίας: < 8mA
- Ακρίβεια: ± 1εκ
- Συχνότητα: 40 kHz
- Θερμοκρασία λειτουργίας: -20 ~ 70
Σημειώστε ότι αυτός ο ελεγκτής έχει ορισμένους περιορισμούς. για παράδειγμα: 1- Το JSN-SR04T δεν μπορεί να μετρήσει απόσταση κάτω από 25CM, οπότε πρέπει να εγκαταστήσετε τον αισθητήρα τουλάχιστον 25CM πάνω από την επιφάνεια του νερού. Επιπλέον, η μέγιστη μέτρηση απόστασης είναι 4,5Μ. Αυτός ο αισθητήρας λοιπόν δεν είναι κατάλληλος για τεράστιες δεξαμενές. 2- η ακρίβεια είναι 1CM για αυτόν τον αισθητήρα. Ως αποτέλεσμα, με βάση τη διάμετρο της δεξαμενής, η ανάλυση του όγκου που θα εμφανίσει η συσκευή μπορεί να μεταβληθεί. 3- Η ταχύτητα του ήχου μπορεί να ποικίλει ανάλογα με τη θερμοκρασία. Ως αποτέλεσμα, η ακρίβεια μπορεί να επηρεαστεί από διαφορετικές περιοχές. Ωστόσο, αυτοί οι περιορισμοί δεν ήταν καθοριστικοί για μένα και η ακρίβεια ήταν κατάλληλη.
Ο ελεγκτής
Χρησιμοποίησα STM32F030K6T6 ARM Cortex M0 από την STMicroelectronics. Μπορείτε να βρείτε τις προδιαγραφές αυτού του μικροελεγκτή εδώ.
Το τροφοδοτικό
Το πρώτο μέρος είναι η μετατροπή 220V/50Hz (Iran Electricity) σε 12VDC. Για το σκοπό αυτό, χρησιμοποίησα τη μονάδα τροφοδοσίας HLK-PM12 buck step down. Αυτός ο μετατροπέας AC/DC μπορεί να μετατρέψει 90 ~ 264 VAC σε 12VDC με ρεύμα εξόδου 0,25Α.
Όπως πιθανώς γνωρίζετε, το επαγωγικό φορτίο στο ρελέ μπορεί να προκαλέσει διάφορα προβλήματα στο κύκλωμα και την τροφοδοσία ρεύματος και η δυσκολία στην τροφοδοσία μπορεί να οδηγήσει σε ασυνέπεια, ειδικά στον μικροελεγκτή. Η λύση είναι να απομονώσετε τα τροφοδοτικά. Επίσης, πρέπει να χρησιμοποιήσετε ένα κύκλωμα snubber στις επαφές ρελέ. Υπάρχουν διάφορες μέθοδοι για την απομόνωση τροφοδοτικών. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε έναν μετασχηματιστή με δύο εξόδους. Επιπλέον, υπάρχουν μεμονωμένοι μετατροπείς DC/DC εκεί έξω σε ένα μικρό μέγεθος που μπορούν να απομονώσουν την έξοδο από την είσοδο. Χρησιμοποίησα το MINMAX MA03-12S09 για το σκοπό αυτό. Είναι μετατροπέας 3W DC/DC με απομόνωση.
Βήμα 3: Το επόπτη IC
Σύμφωνα με τη σημείωση της εφαρμογής TI: Ένας επιβλέπων τάσης (γνωστός και ως ολοκληρωμένο κύκλωμα επαναφοράς [IC]) είναι ένας τύπος οθόνης τάσης που παρακολουθεί την τροφοδοσία συστήματος. Οι επόπτες τάσης χρησιμοποιούνται συχνά με επεξεργαστές, ρυθμιστές τάσης και διαχωριστές - γενικά, όπου απαιτείται ανίχνευση τάσης ή ρεύματος. Οι επόπτες παρακολουθούν τις ράγες τάσης για να διασφαλίσουν την ενεργοποίηση, να εντοπίσουν βλάβες και να επικοινωνήσουν με ενσωματωμένους επεξεργαστές για να διασφαλίσουν την υγεία του συστήματος. μπορείτε να βρείτε αυτήν τη σημείωση εφαρμογής εδώ. Παρόλο που οι μικροελεγκτές STM32 έχουν ενσωματωμένους επόπτες, όπως η οθόνη παρακολούθησης τροφοδοσίας, χρησιμοποίησα ένα εξωτερικό τσιπ επόπτη για να διασφαλίσω ότι όλα θα λειτουργήσουν καλά. Στην περίπτωσή μου, χρησιμοποίησα το TL7705 από την TI. Μπορείτε να δείτε την περιγραφή από τον ιστότοπο Texas Instruments για αυτό το IC παρακάτω: Η οικογένεια TL77xxA της οικογένειας εποπτών τάσης τροφοδοσίας ολοκληρωμένου κυκλώματος έχει σχεδιαστεί ειδικά για χρήση ως ελεγκτές επαναφοράς σε συστήματα μικροϋπολογιστών και μικροεπεξεργαστών. Ο επόπτης τάσης τροφοδοσίας παρακολουθεί την παροχή για συνθήκες υπό τάσης στην είσοδο SENSE. Κατά την ενεργοποίηση, η έξοδος RESET γίνεται ενεργή (χαμηλή) όταν το VCC φτάσει μια τιμή που πλησιάζει τα 3,6 V. Σε αυτό το σημείο (υποθέτοντας ότι το SENSE είναι πάνω από το VIT+), η λειτουργία χρονοδιακόπτη καθυστέρησης ενεργοποιεί μια χρονική καθυστέρηση, μετά την οποία εξάγει RESET και RESET (ΟΧΙ) μη ενεργό (υψηλό και χαμηλό, αντίστοιχα). Όταν εμφανίζεται κατάσταση υπό τάσης κατά την κανονική λειτουργία, το RESET και το RESET (NOT) ενεργοποιούνται.
Βήμα 4: Ο πίνακας τυπωμένων κυκλωμάτων (PCB)
Σχεδίασα το PCB σε δύο κομμάτια. Το πρώτο είναι το PCB LCD που συνδέεται με την πλακέτα με κορδέλα/επίπεδο καλώδιο. Το δεύτερο μέρος είναι το PCB του ελεγκτή. Σε αυτό το PCB, τοποθέτησα τροφοδοτικό, μικροελεγκτή, αισθητήρα υπερήχων και συναφή εξαρτήματα. Και επίσης το τμήμα ισχύος που είναι το κύκλωμα ρελέ, varistor και snubber. Όπως πιθανώς γνωρίζετε, μηχανικά ρελέ όπως ένα ρελέ που χρησιμοποίησα στο κύκλωμά μου μπορούν να διαλυθούν εάν λειτουργούν πάντα. Για να ξεπεράσω αυτό το πρόβλημα, χρησιμοποίησα κανονικά στενή επαφή (NC) του ρελέ. Έτσι, σε μια κανονική κατάσταση, το ρελέ δεν είναι ενεργό και κανονικά μια στενή επαφή μπορεί να οδηγήσει την ισχύ στην άντληση. Κάθε φορά που το νερό έρχεται κάτω από το χαμηλό όριο, το ρελέ θα ανάψει και αυτό θα διακόψει την ισχύ. Τούτου λεχθέντος, αυτός είναι ο λόγος που χρησιμοποίησα το κύκλωμα snubber σε επαφές NC και COM. Όσον αφορά το γεγονός ότι η αντλία είχε υψηλή ισχύ, χρησιμοποίησα το δεύτερο ρελέ 220 για αυτήν και την οδηγώ με το ρελέ σε PCB.
Μπορείτε να κατεβάσετε αρχεία PCB όπως αρχεία PCB Altium και αρχεία Gerber από το GitHub μου εδώ.
Βήμα 5: Κωδικός
Χρησιμοποίησα το STM32Cube IDE, το οποίο είναι μια λύση all-in-one για ανάπτυξη κώδικα από την STMicroelectronics. Βασίζεται στο Eclipse IDE με μεταγλωττιστή GCC ARM. Επίσης, έχει STM32CubeMX σε αυτό. Μπορείτε να βρείτε περισσότερες πληροφορίες εδώ. Στην αρχή, έγραψα έναν κωδικό που περιλάμβανε τις προδιαγραφές της δεξαμενής μας (ightψος και Διάμετρος). Ωστόσο, αποφάσισα να το αλλάξω σε GUI για ρύθμιση παραμέτρων με βάση διαφορετικές προδιαγραφές.
Βήμα 6: Εγκατάσταση σε δεξαμενή
Στο τέλος, έφτιαξα ένα απλό κουτί για να προστατεύει το PCB από το νερό. Επίσης, έκανα μια τρύπα στο πάνω μέρος της δεξαμενής για να βάλω τον αισθητήρα σε αυτό.
Συνιστάται:
ULTRASONIC LEVITATION Machine Using ARDUINO: 8 βήματα (με εικόνες)
ULTRASONIC LEVITATION Machine Using ARDUINO: Είναι πολύ ενδιαφέρον να βλέπεις κάτι να αιωρείται στον αέρα ή ελεύθερο χώρο όπως εξωγήινα διαστημόπλοια. αυτό ακριβώς είναι ένα έργο αντιβαρύτητας. Το αντικείμενο (βασικά ένα μικρό κομμάτι χαρτί ή ένα θερμόκολλο) τοποθετείται ανάμεσα σε δύο υπερηχητικά συστήματα
DIY Digital Spirit Level: 5 βήματα (με εικόνες)
DIY Digital Spirit Level: Σε αυτό το έργο θα έχουμε μια πιο προσεκτική ματιά στα IC του επιταχυνσιόμετρου και θα μάθουμε πώς μπορούμε να τα χρησιμοποιήσουμε με ένα Arduino. Στη συνέχεια, θα συνδυάσουμε ένα τέτοιο IC με μερικά συμπληρωματικά στοιχεία και ένα τρισδιάστατο περίβλημα για να δημιουργήσουμε ένα ψηφιακό
Coke Machine Can Level Detector: 5 Βήματα (με εικόνες)
Coke Machine Can Level Detector: Rev 2.5 - τακτοποίησε τα τρισδιάστατα τυπωμένα μέρη και ενημέρωσε το βύσμα σύνδεσης σε μια κοινή μονάδα PCB. Rev 2 - υπερηχητικό " κουμπί " αντικαθιστά το χειροκίνητο κουμπί. Το πάτημα ενός κουμπιού είναι τόσο παλιά μόδα, ιδιαίτερα όταν χρησιμοποιώ ήδη υπερηχητική αίσθηση
TTL Logic Level Tester Pen .: 5 βήματα (με εικόνες)
TTL Logic Level Tester Pen .: Polarity Tester Pen & TTL Logic Level Tester Pen. Αυτό το στυλό δοκιμής πολικότητας είναι ελαφρώς διαφορετικό επειδή είναι σε θέση να δοκιμάσει τα επίπεδα TTL και δείχνει την κατάσταση σε μια οθόνη 7 τμημάτων χρησιμοποιώντας τα γράμματα: " H " (Υψηλή) για επίπεδο λογικής "
NES Controller Shuffle (Nintendo Controller MP3, V3.0): 5 βήματα (με εικόνες)
NES Controller Shuffle (Nintendo Controller MP3, V3.0): Έσπασα τελείως το ryan97128 στο σχεδιασμό του για το Nintendo Controller MP3, έκδοση 2.0 και ακούω ότι πήρε την ιδέα από τον πανέξυπνο Morte_Moya, οπότε δεν μπορώ να πιστώσω όλη η ιδιοφυΐα τους. Απλώς ήθελα να προσθέσω την ευκολία και να επαναφορτίσω