Πίνακας περιεχομένων:
Βίντεο: Δημιουργία χωρητικού αισθητήρα υγρού: 8 βήματα (με εικόνες)
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Ένας χωρητικός χορηγός υγρού βασίζεται στο γεγονός ότι η χωρητικότητα ή το φορτίο μεταξύ 2 μεταλλικών πλακών θα αλλάξει (σε αυτή την περίπτωση αυξηθεί) ανάλογα με το υλικό που υπάρχει μεταξύ τους. Αυτό μας επιτρέπει να δημιουργήσουμε έναν αισθητήρα στάθμης που είναι ασφαλής για χρήση με οποιοδήποτε υγρό, αυτός θα χρησιμοποιηθεί σε ένα αμαξάκι με βενζίνη (βενζίνη). Ένα πιάτο είναι γαντζωμένο στη γείωση. Το άλλο συνδέεται με τον πείρο 23. Υπάρχει αντίσταση 820K ohm από τον πείρο 22 έως 23. Ο αισθητήρας λειτουργεί φορτίζοντας τον πυκνωτή (το μπουκάλι νερό) και μετρώντας πόσο χρόνο χρειάζεται για να στραγγίσει μέσω της αντίστασης.
Βήμα 1: Μέρη
1. Ένας πίνακας ψωμιού χωρίς συγκόλληση δεν είναι αυστηρά απαραίτητος, αλλά το κάνει πολύ πιο εύκολο, ειδικά αν σκοπεύετε να προσθέσετε άλλα πράγματα αργότερα. 2. Arduino, χρησιμοποιώ ένα Arduino mega, αλλά ένα τυπικό πρέπει να έχει αρκετές ακίδες. 3. Οθόνη χαρακτήρων LCD. 4. Μερικές πιθανότητες και άκρα, συμπεριλαμβανομένου καλωδίου και αντίστασης 1MΩ. 5. Ένας υπολογιστής, ξέρεις, αυτό το πράγμα χρησιμοποιείς για να διαβάζεις τις οδηγίες μου. 6. Υπομονή.
Βήμα 2: Σύνδεση της οθόνης LCD και αφήστε τη δημιουργία σας να μιλήσει στον κόσμο
Όπως κάθε βήμα σε αυτό το διδακτικό, υπάρχουν πολλοί τρόποι για να γίνει αυτό. Θα σου δείξω το αγαπημένο μου.
Το LCD σας διαθέτει 16 μαξιλάρια συγκόλλησης οπών, οπότε το πρώτο πράγμα είναι να συνδέσετε μερικές καρφίτσες. Εάν έχετε το δίπλωμα ευρεσιτεχνίας σας, προτείνω να αγοράσετε μια κεφαλίδα όπως αυτή https://www.sparkfun.com/commerce/product_info.php?products_id=117. Αλλά αν θέλετε να τελειώσετε όσο το δυνατόν γρηγορότερα (όπως εγώ), τότε μπορείτε να χρησιμοποιήσετε καλώδιο. Απλά κόψτε 16 κομμάτια σύρματος σε περίπου 1/2 (13 mm (το μήκος είναι εντάξει)). Στη συνέχεια, κολλήστε τα στον πίνακα.
Βήμα 3: Η σύνδεση LCD συνεχίζεται
Αμαρτίες Χρησιμοποιώ ειδικούς χαρακτήρες Θα συνδέσω όλα τα καλώδια.
Pin 1 Ground Pin 2 +5 Volt Pin 3 Contrast adjust Pin 4 RS Pin 5 R/W Go to Ground Pin 6-14 Data Pin 15 Back-light Power Pin 16 Back-light Ground
Βήμα 4: Γραμμές δεδομένων
Τώρα πρέπει να συνδέσετε το Arduino στο lcd. Δεν έχει σημασία ποιες καρφίτσες χρησιμοποιείτε, αλλά προτείνω να ακολουθήσετε το σχηματικό σχήμα.
Βήμα 5: Ισχύς MaHaHaHa
Η θύρα usb στον υπολογιστή σας έχει αρκετή ισχύ για να τρέξει το Arduino και led back-light, οπότε απλά συνδέστε τη γείωση και τις ράγες τροφοδοσίας στον πίνακα ψωμιού με την τροφοδοσία στον πίνακα Arduino.
Βήμα 6: Δημιουργήστε χωρητικό αισθητήρα
Για δοκιμές χρησιμοποίησα αλουμινόχαρτο και ένα πλαστικό μπουκάλι νερό, θα λειτουργήσει με οποιοδήποτε δοχείο αρκεί να μην είναι μέταλλο.
Μπορείτε να χρησιμοποιήσετε οποιοδήποτε τύπο σύρματος, αλλά τυχόν μη θωρακισμένες γραμμές θα παρέχουν κακή απόδοση. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε 2 καρφίτσες, επέλεξα 22 και 23. Συνδέστε τη μία πλευρά στη γείωση και την άλλη σε μια αντίσταση και 2 ακίδες εισόδου/εξόδου.
Βήμα 7: Προγραμματισμός
Πρέπει να προσθέσετε 2 αρχεία βιβλιοθήκης για να το κάνετε αυτό LiquidCrystal.h https://arduino.cc/en/Tutorial/LiquidCrystalCapSense.h https://www.arduino.cc/playground/Main/CapSenseCopy και περάστε το στο Arduino 0017 ή νεότερο. // Capacitive Liquid Sensor // Vadim 7 Δεκεμβρίου 2009 #include #include // Αυτό είναι για να ορίσετε το μέγεθος του lcd const int numRows = f = 4; const int numCols = 20; // Αυτό ορίζει τις ακίδες για το lcd (RS, Enable, data 0-7) LiquidCrystal lcd (53, 52, 51, 50, 49, 48, 47, 46, 45, 44). #define Tempin 0x48 #define Tempout 0x49 CapSense cs_22_23 = CapSense (22, 23); μπλοκ uint8_t [8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; uint8_t tl [8] = {0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x0F}; uint8_t tr [8] = {0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1D, 0x15}; uint8_t bl [8] = {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F}; uint8_t br [8] = {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x12, 0x18}; void setup () {lcd.begin (numRows, numCols); lcd.createChar (4, tl); lcd.createChar (5, tr); lcd.createChar (6, bl); lcd.createChar (7, br); lcd.setCursor (18, 0); lcd.print (4, BYTE); lcd.setCursor (19, 0); lcd.print (5, BYTE); lcd.setCursor (18, 1); lcd.print (6, BYTE); lcd.setCursor (19, 1); lcd.print (7, BYTE); lcd.setCursor (0, 2); lcd.print ("Καύσιμο"); lcd.setCursor (0, 3); lcd.print ("E"); } void loop () {long fuel; lcd.createChar (2, μπλοκ); μεγάλη εκκίνηση = millis (); καύσιμο = cs_22_23.capSenseRaw (200); // Το Temratue κάνει μια μικρή διαφορά, οπότε αφήστε το να λειτουργήσει για 5 λεπτά πριν από τη ρύθμιση. // Προσαρμόστε αυτόν τον αριθμό έτσι ώστε η έξοδος να είναι όσο το δυνατόν πλησιέστερη στο μηδέν. καύσιμο = καύσιμο - 7200; // Στη συνέχεια, συμπληρώστε το conataner // Un-comment και ρυθμίστε το έτσι ώστε η έξοδος, όταν το δοχείο είναι γεμάτο, // να είναι όσο το δυνατόν πιο κοντά στο 100. // καύσιμο = καύσιμο /93; lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (0, 0); lcd.print (καύσιμο) εάν (καύσιμα> = 6) {lcd.setCursor (1, 3); lcd.print (2, BYTE); } else {lcd.setCursor (1, 3); lcd.print (""); } if (καύσιμα> = 12) {lcd.setCursor (2, 3); lcd.print (2, BYTE); } else {lcd.setCursor (2, 3); lcd.print (""); } if (καύσιμα> = 17) {lcd.setCursor (3, 3); lcd.print (2, BYTE); } else {lcd.setCursor (3, 3); lcd.print (""); } if (καύσιμα> = 23) {lcd.setCursor (4, 3); lcd.print (2, BYTE); } else {lcd.setCursor (4, 3); lcd.print (""); } if (καύσιμα> = 28) {lcd.setCursor (5, 3); lcd.print (2, BYTE); } else {lcd.setCursor (5, 3); lcd.print (""); } if (καύσιμα> = 34) {lcd.setCursor (6, 3); lcd.print (2, BYTE); } else {lcd.setCursor (6, 3); lcd.print (""); } if (καύσιμα> = 39) {lcd.setCursor (7, 3); lcd.print (2, BYTE); } else {lcd.setCursor (7, 3); lcd.print (""); } if (καύσιμα> = 44) {lcd.setCursor (8, 3); lcd.print (2, BYTE); } else {lcd.setCursor (8, 3); lcd.print (""); } if (καύσιμα> = 50) {lcd.setCursor (9, 3); lcd.print (2, BYTE); } else {lcd.setCursor (9, 3); lcd.print (""); } if (καύσιμα> = 55) {lcd.setCursor (10, 3); lcd.print (2, BYTE); } else {lcd.setCursor (10, 3); lcd.print (""); } if (καύσιμα> = 60) {lcd.setCursor (11, 3); lcd.print (2, BYTE); } else {lcd.setCursor (11, 3); lcd.print (""); } if (καύσιμα> = 64) {lcd.setCursor (12, 3); lcd.print (2, BYTE); } else {lcd.setCursor (12, 3); lcd.print (""); } if (καύσιμα> = 69) {lcd.setCursor (13, 3); lcd.print (2, BYTE); } else {lcd.setCursor (13, 3); lcd.print (""); } if (καύσιμα> = 74) {lcd.setCursor (14, 3); lcd.print (2, BYTE); } else {lcd.setCursor (14, 3); lcd.print (""); } if (καύσιμα> = 78) {lcd.setCursor (15, 3); lcd.print (2, BYTE); } else {lcd.setCursor (15, 3); lcd.print (""); } if (καύσιμα> = 83) {lcd.setCursor (16, 3); lcd.print (2, BYTE); } else {lcd.setCursor (16, 3); lcd.print (""); } if (καύσιμα> = 87) {lcd.setCursor (17, 3); lcd.print (2, BYTE); } else {lcd.setCursor (17, 3); lcd.print (""); } if (καύσιμα> = 92) {lcd.setCursor (18, 3); lcd.print (2, BYTE); } else {lcd.setCursor (18, 3); lcd.print (""); } if (καύσιμα> = 96) {lcd.setCursor (19, 3); lcd.print ("F"); } else {lcd.setCursor (19, 3); lcd.print (""); } καθυστέρηση (50); }
Βήμα 8: Πράγματα
Αυτό είναι ιδανικό για τη μέτρηση πτητικών υγρών, ακόμη και μέσα σε μια δεξαμενή προπανίου. Καλα να περνατε. Οποιαδήποτε και όλες οι πληροφορίες είναι μόνο για εκπαιδευτικούς σκοπούς και δεν μπορώ να θεωρηθώ υπεύθυνος εάν ανατιναχτείτε.