- Τι είναι ο χωρητικός αισθητήρας αφής και πώς λειτουργεί;
- Δημιουργία ενός χωρητικού αισθητήρα αφής τεσσάρων κατευθύνσεων
- Απαιτούμενα υλικά για ESP32 Touch Controlled Circuit
- Κύκλωμα ελέγχου για τον χωρητικό μας αισθητήρα αφής
- Σχεδιασμός PCB για το κύκλωμα χωρητικού αισθητήρα αφής
- Κωδικός Arduino για χωρητικό αισθητήρα αφής με βάση ESP32
- Δοκιμή του κυκλώματος αισθητήρα αφής με βάση το ESP32
- Περαιτέρω βελτιώσεις
Σε πολλές περιπτώσεις, χρησιμοποιούνται αισθητήρες αφής αντί για κουμπιά. Το πλεονέκτημα είναι ότι δεν χρειάζεται να παρέχουμε δύναμη για να πατήσουμε ένα κουμπί και μπορούμε να ενεργοποιήσουμε ένα πλήκτρο χωρίς να το αγγίξουμε χρησιμοποιώντας αισθητήρες αφής. Η τεχνολογία αίσθησης αφής γίνεται δημοφιλής μέρα με τη μέρα. Και κατά την τελευταία δεκαετία, έχει γίνει δύσκολο να φανταστεί κανείς τον κόσμο χωρίς ηλεκτρονικά ευαίσθητα στην αφή. Μπορούν να χρησιμοποιηθούν και οι δύο μέθοδοι αντίστασης και χωρητικής αφής για την ανάπτυξη ενός αισθητήρα αφής και σε αυτό το άρθρο, θα συζητήσουμε έναν ακατέργαστο τρόπο κατασκευής ενός χωρητικού αισθητήρα αφής με το ESP32, προηγουμένως έχουμε επίσης δημιουργήσει ένα κουμπί αφής Capacitive με Raspberry pi
Αν και οι αισθητήρες αφής για συγκεκριμένες εφαρμογές μπορεί να είναι λίγο περίπλοκοι, η θεμελιώδης αρχή στην οποία βασίζεται αυτή η τεχνολογία παραμένει η ίδια, οπότε σε αυτό το άρθρο, θα επικεντρωθούμε στην ανάπτυξη του χωρητικού μας αισθητήρα αφής με τη βοήθεια του αγαπημένου μας ESP32 και ενός χαλκού ντυμένος πίνακας.
Στο προηγούμενο σεμινάριο, κάναμε το Control Home Lights with Touch χρησιμοποιώντας το TTP223 Touch Sensor και το Arduino UNO, Τώρα σε αυτό το έργο, κατασκευάζουμε έναν αισθητήρα αφής για ESP32 αλλά το ίδιο μπορεί να χρησιμοποιηθεί και για το Arduino. Επίσης, προηγουμένως χρησιμοποιήσαμε μεθόδους εισαγωγής βάσει αφής χρησιμοποιώντας χωρητικά touch pad με διαφορετικούς μικροελεγκτές, όπως Touch Keypad Interfacing with ATmega32 Microcontroller και Capacitive TouchPad with Raspberry Pi, μπορείτε επίσης να τα ελέγξετε αν ενδιαφέρεστε.
Τι είναι ο χωρητικός αισθητήρας αφής και πώς λειτουργεί;
Οι πυκνωτές έρχονται σε πολλές μορφές. Η πιο συνηθισμένη φορά έρχεται με τη μορφή συσκευασίας με μόλυβδο ή συσκευασίας επιφανείας, αλλά για να σχηματίσουμε χωρητικότητα, χρειαζόμαστε αγωγούς διαχωρισμένους με διηλεκτρικό υλικό. Έτσι, είναι εύκολο να δημιουργήσετε ένα. Ένα καλό παράδειγμα θα ήταν αυτό που θα αναπτύξουμε στο ακόλουθο παράδειγμα.
Θεωρώντας το χαραγμένο PCB ως αγώγιμο υλικό, το αυτοκόλλητο ενεργεί ως διηλεκτρικό υλικό, οπότε τώρα παραμένει το ερώτημα, πώς αγγίζοντας το χαλκό μαξιλάρι προκαλεί την αλλαγή της χωρητικότητας με τέτοιο τρόπο ώστε ο ελεγκτής αισθητήρα αφής να μπορεί να ανιχνεύσει; Ένα ανθρώπινο δάχτυλο, φυσικά.
Λοιπόν, υπάρχουν κυρίως δύο λόγοι: Πρώτον, ο ένας περιλαμβάνει τις διηλεκτρικές ιδιότητες του δακτύλου μας, ο δεύτερος οφείλεται στις αγώγιμες ιδιότητες του δακτύλου μας. Θα χρησιμοποιήσουμε μια χωρητική αφή. Έτσι, θα στρέψουμε την εστίασή μας προς τον χωρητικό αισθητήρα αφής. Αλλά πριν συζητήσουμε όλα αυτά, είναι σημαντικό να σημειωθεί ότι δεν πραγματοποιείται αγωγιμότητα και το δάχτυλο είναι μονωμένο, λόγω του χαρτιού που χρησιμοποιείται στο αυτοκόλλητο. Έτσι, το δάχτυλο δεν μπορεί να αποφορτίσει τον πυκνωτή.
Το δάχτυλο ενεργεί ως διηλεκτρικό:
Είναι κοινή γνώση ότι ένας πυκνωτής έχει μια σταθερή τιμή που μπορεί να πραγματοποιηθεί από την περιοχή των δύο αγώγιμων πλακών, την απόσταση μεταξύ των πλακών και τη διηλεκτρική σταθερά. Δεν μπορούμε να αλλάξουμε την περιοχή του πυκνωτή απλώς αγγίζοντας το, αλλά μπορούμε σίγουρα να αλλάξουμε τη διηλεκτρική σταθερά του πυκνωτή, επειδή ένα ανθρώπινο δάχτυλο έχει διαφορετική διηλεκτρική σταθερά από το υλικό που το εμφανίζει. Στην περίπτωσή μας, είναι αέρας, αλλάζουμε αέρα με τα δάχτυλά μας. Εάν ρωτάτε πώς; Είναι επειδή η διηλεκτρική σταθερά του αέρα 1006 σε θερμοκρασία δωματίου σε επίπεδο θάλασσας και η διηλεκτρική σταθερά του δακτύλου είναι πολύ υψηλότερη περίπου 80, επειδή ένα ανθρώπινο δάχτυλο αποτελείται κυρίως από νερό. Έτσι, η αλληλεπίδραση του δακτύλου με το ηλεκτρικό πεδίο του πυκνωτή προκαλεί αύξηση της διηλεκτρικής σταθεράς εξ ου και η χωρητικότητα αυξάνεται.
Τώρα που έχουμε κατανοήσει τον κύριο, ας προχωρήσουμε στη δημιουργία πραγματικών PCB.
Δημιουργία ενός χωρητικού αισθητήρα αφής τεσσάρων κατευθύνσεων
Ο χωρητικός αισθητήρας αφής που χρησιμοποιείται σε αυτό το έργο έχει τέσσερα κανάλια και είναι εύκολο να φτιαχτεί. Παρακάτω αναφέραμε τη λεπτομερή διαδικασία για τη δημιουργία μιας.
Αρχικά, δημιουργήσαμε το PCB για τον αισθητήρα με τη βοήθεια του εργαλείου σχεδίασης Eagle PCB, το οποίο μοιάζει με την παρακάτω εικόνα.
Με τη βοήθεια των διαστάσεων και του Photoshop, φτιάξαμε το πρότυπο και τέλος το αυτοκόλλητο για τον αισθητήρα, ο οποίος μοιάζει με την παρακάτω εικόνα,
Τώρα, καθώς τελειώσαμε με το αυτοκόλλητο, προχωράμε στη δημιουργία του πραγματικού προτύπου πλακέτας με το οποίο πρόκειται να χρησιμοποιήσουμε για την κατασκευή του PCB μας, το οποίο μοιάζει με την παρακάτω εικόνα,
Τώρα μπορούμε να εκτυπώσουμε αυτό το αρχείο και να προχωρήσουμε στις διαδικασίες δημιουργίας σπιτικού PCB. ΕΑΝ είστε νέοι, μπορείτε να δείτε το άρθρο σχετικά με τον τρόπο κατασκευής PCB στο σπίτι. Μπορείτε επίσης να κατεβάσετε τα απαιτούμενα αρχεία PDF και Gerber από τον παρακάτω σύνδεσμο
- Αρχείο GERBER για τεσσάρων καναλιών χωρητικό αισθητήρα αφής
Μόλις ολοκληρωθεί, το πραγματικό χαραγμένο PCB μοιάζει με την παρακάτω εικόνα.
Τώρα ήρθε η ώρα να ανοίξετε μερικές τρύπες και συνδέουμε μερικά καλώδια με το PCB. Για να το συνδέσουμε με την πλακέτα ESP32. Μόλις ολοκληρωθεί, μοιάζει με την παρακάτω εικόνα.
Δεδομένου ότι δεν τοποθετήσαμε μέσω του PCB, η συγκόλληση πήγε παντού ενώ συγκολλήθηκε, διορθώσαμε το λάθος μας τοποθετώντας μια τρύπα στο PCB, το οποίο μπορείτε να βρείτε στην παραπάνω ενότητα λήψης. Τέλος, ήρθε η ώρα να φορέσετε το αυτοκόλλητο και να το τελειώσετε. Που μοιάζει με την παρακάτω εικόνα.
Τώρα τελειώσαμε με τον πίνακα αφής, ήρθε η ώρα να προχωρήσουμε στην κατασκευή του κυκλώματος ελέγχου για τον πίνακα αφής.
Απαιτούμενα υλικά για ESP32 Touch Controlled Circuit
Τα στοιχεία που απαιτούνται για την κατασκευή της ενότητας ελεγκτή χρησιμοποιώντας το ESP32 δίνονται παρακάτω, θα πρέπει να μπορείτε να τα βρείτε περισσότερα στο τοπικό κατάστημα χόμπι.
Έχω επίσης απαριθμήσει τα στοιχεία στον παρακάτω πίνακα με τον απαιτούμενο τύπο και ποσότητα, καθώς συνδέουμε έναν αισθητήρα αφής τεσσάρων καναλιών και ελέγχουμε τέσσερα φορτία AC, θα χρησιμοποιήσουμε 4 ρελέ για να αλλάξουμε το φορτίο AC και 4 τρανζίστορ για να χτίσουμε το ρελέ κυκλώματα οδηγού.
Sl. Όχι |
Ανταλλακτικά |
Τύπος |
Ποσότητα |
1 |
Αναμετάδοση |
Διακόπτης |
4 |
2 |
BD139 |
Τρανζίστορ |
4 |
3 |
Ακροδέκτης βίδας |
Ακροδέκτης βίδας 5mmx2 |
4 |
4 |
1Ν4007 |
Δίοδος |
5 |
5 |
0.1uF |
Πυκνωτής |
1 |
6 |
100uF, 25V |
Πυκνωτής |
2 |
7 |
LM7805 |
Ρυθμιστής τάσης |
1 |
8 |
1Κ |
Αντίσταση |
4 |
9 |
560R |
Αντίσταση |
4 |
10 |
Κεχριμπάρι LED |
LED |
4 |
11 |
Αρσενική κεφαλίδα |
Συνδετήρας |
4 |
12 |
Γυναίκα κεφαλίδα |
Συνδετήρας |
30 |
13 |
Κόκκινο LED |
LED |
1 |
14 |
ESP32 Dev Board V1 |
Πίνακας ESP32 |
1 |
12 |
Ντυμένοι πίνακες |
Γενικό 50x50mm |
1 |
13 |
Καλώδια αλτών |
Σύρματα |
4 |
14 |
Σύνδεση καλωδίων |
Σύρματα |
5 |
Κύκλωμα ελέγχου για τον χωρητικό μας αισθητήρα αφής
Η παρακάτω εικόνα δείχνει το πλήρες διάγραμμα κυκλώματος για τον αισθητήρα αφής με βάση το ESP32.
Όπως μπορείτε να δείτε, είναι ένα πολύ απλό κύκλωμα με ελάχιστα απαιτούμενα εξαρτήματα.
Επειδή είναι ένα απλό κύκλωμα αισθητήρα αφής, μπορεί να είναι χρήσιμο σε μέρη όπου θέλετε να αλληλεπιδράσετε με μια συσκευή μέσω αφής, για παράδειγμα, αντί να χρησιμοποιήσετε έναν τυπικό διακόπτη που είναι τοποθετημένος στην πλακέτα, μπορείτε να ενεργοποιήσετε / απενεργοποιήσετε τις συσκευές σας με άγγιγμα.
Στο σχηματικό σχήμα, μια υποδοχή βαρελιού DC χρησιμοποιείται ως είσοδος όπου παρέχουμε την απαραίτητη ισχύ που απαιτείται για την τροφοδοσία του κυκλώματος, από εκεί έχουμε τον ρυθμιστή τάσης 7805 που μετατρέπει τη μη ρυθμιζόμενη είσοδο DC σε σταθερό 5V DC μέσω του οποίου παρέχουμε η ισχύς της μονάδας ESP32.
Στη συνέχεια, στο σχηματικό, έχουμε τους συνδέσμους αφής μας στον ακροδέκτη 25, 26, 27, 28, όπου πρόκειται να συνδέσουμε το touchpad.
Στη συνέχεια, έχουμε τα ρελέ μας τα οποία αλλάζουν μέσω ενός τρανζίστορ BD139, η δίοδος D2, D3, D4, D5 είναι εκεί για να προστατεύσει το κύκλωμα από οποιαδήποτε μεταβατική τάση που δημιουργείται όταν το ρελέ εναλλάσσεται, οι δίοδοι σε αυτήν τη διαμόρφωση είναι γνωστές ως δίοδος επιστροφής / δίοδος ελεύθερης περιστροφής. Οι αντιστάσεις 560R στη βάση κάθε τρανζίστορ χρησιμοποιούνται για τον περιορισμό της ροής ρεύματος μέσω της βάσης.
Σχεδιασμός PCB για το κύκλωμα χωρητικού αισθητήρα αφής
Το PCB για το κύκλωμα αισθητήρα αφής σχεδιάστηκε για πλακέτα μίας όψης. Έχουμε χρησιμοποιήσει το Eagle για να σχεδιάσουμε το PCB μου, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε λογισμικό σχεδίασης της επιλογής σας. Η 2D εικόνα του σχεδιασμού του πίνακα μας φαίνεται παρακάτω
Χρησιμοποιήθηκε επαρκής διάμετρος ίχνους για την κατασκευή των διαδρομών ισχύος, το οποίο χρησιμοποιείται για τη ροή του ρεύματος μέσω της πλακέτας κυκλώματος. Βάζουμε το βιδωτό τερματικό στην κορυφή επειδή είναι πολύ πιο εύκολο να συνδέσετε το φορτίο σας με αυτόν τον τρόπο και ο σύνδεσμος τροφοδοσίας, ο οποίος είναι υποδοχή βαρελιού DC τοποθετήθηκε στο πλάι, ο οποίος παρέχει επίσης εύκολη πρόσβαση. Μπορείτε να κατεβάσετε το πλήρες αρχείο σχεδίασης για το Eagle μαζί με το Gerber από τον παρακάτω σύνδεσμο.
- Αρχείο GERBER για κύκλωμα ελέγχου αισθητήρα αφής με βάση ESP32
Τώρα που το σχέδιο μας είναι έτοιμο, ήρθε η ώρα να χαράξετε και να κολλήσετε το ταμπλό. Αφού ολοκληρωθεί η διαδικασία χάραξης, διάτρησης και συγκόλλησης, ο πίνακας μοιάζει με την παρακάτω εικόνα,
Κωδικός Arduino για χωρητικό αισθητήρα αφής με βάση ESP32
Για αυτό το έργο, θα προγραμματίσουμε το ESP32 με έναν προσαρμοσμένο κωδικό που θα περιγράψουμε σύντομα. Ο κωδικός είναι πολύ απλός και εύχρηστος, Ξεκινάμε με τον καθορισμό όλων των απαιτούμενων ακίδων, στην περίπτωσή μας, ορίζουμε τις ακίδες για τους αισθητήρες αφής και τα ρελέ μας.
#define Relay_PIN_1 15 #define Relay_PIN_2 2 #define Relay_PIN_3 4 #define Relay_PIN_4 16 #define TOUCH_SENSOR_PIN_1 13 #define TOUCH_SENSOR_PIN_2 12 # ορίστε TOUCH_SENSOR_PIN_PIN_PIN
Στη συνέχεια, στην ενότητα εγκατάστασης, ξεκινάμε αρχικοποιώντας το UART για εντοπισμό σφαλμάτων, στη συνέχεια έχουμε παρουσιάσει καθυστέρηση 1S που μας δίνει λίγο χρόνο για το άνοιγμα ενός παραθύρου Serial Monitor. Στη συνέχεια, χρησιμοποιούμε τη λειτουργία Arduinos pinMode για να κάνουμε τους πείρους ρελέ ως έξοδο, που σηματοδοτεί το τέλος της ενότητας Ρύθμιση () .
άκυρη ρύθμιση () {Serial.begin (115200); καθυστέρηση (1000) pinMode (Ρελέ_PIN_1, ΕΞΟΔΟΣ); pinMode (Ρελέ_PIN_2, ΕΞΟΔΟΣ); pinMode (Ρελέ_PIN_3, OUTPUT); pinMode (Ρελέ_PIN_4, OUTPUT); }
Ξεκινάμε την ενότητα βρόχου μας με μια δήλωση if , η ενσωματωμένη συνάρτηση touchRead (pin_no) χρησιμοποιείται για να προσδιορίσει εάν μια ακίδα αγγίχθηκε ή όχι. Η συνάρτηση touchRead (pin_no) επιστρέφει ακέραια εύρη τιμών (0 - 100), η τιμή παραμένει κοντά στο 100 όλη την ώρα, αλλά αν αγγίξουμε τον επιλεγμένο πείρο, η τιμή μειώνεται σχεδόν στο μηδέν και με τη βοήθεια της μεταβαλλόμενης τιμής, μπορούμε να προσδιορίσουμε εάν ο συγκεκριμένος πείρος άγγιξε με ένα δάχτυλο ή όχι.
Στη δήλωση if , ελέγχουμε για οποιαδήποτε αλλαγή στις ακέραιες τιμές και αν η τιμή φτάσει κάτω από 28, μπορούμε να είμαστε σίγουροι ότι έχουμε αναγνωρίσει μια πινελιά. Μόλις η δήλωση if γίνει αληθινή, περιμένουμε 50ms και ελέγξουμε ξανά την παράμετρο, αυτό θα μας βοηθήσει να προσδιορίσουμε εάν η τιμή του αισθητήρα ενεργοποιήθηκε εσφαλμένα, μετά από αυτό, αντιστρέφουμε την κατάσταση του πείρου χρησιμοποιώντας το digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) μέθοδος, και ο υπόλοιπος κωδικός παραμένει ο ίδιος.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Ο αισθητήρας αγγίζεται"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} αλλιώς εάν (touchRead (TOUCH_SENSOR_PIN_2) <28) {if (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println ("Το Sensor Two is touch"); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} αλλιώς εάν (touchRead (TOUCH_SENSOR_PIN_3) <28) {if (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("Το Sensor Three is touch"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} αλλιώς εάν (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println ("Το Sensor Four is touch"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Τέλος, τερματίζουμε τον κωδικό μας με άλλα 200 ms καθυστέρησης αποκλεισμού.
Δοκιμή του κυκλώματος αισθητήρα αφής με βάση το ESP32
Επειδή πρόκειται για ένα πολύ απλό έργο, το σετ δοκιμών είναι πολύ απλό, όπως μπορείτε να δείτε, έχω συνδέσει 4 LED με αντιστάσεις που λειτουργούν ως φορτία, καθώς συνδέεται με το ρελέ, μπορείτε εύκολα να συνδέσετε οποιοδήποτε φορτίο έως 3Amps.
Περαιτέρω βελτιώσεις
Αν και το PCB είναι απλό, υπάρχει ακόμα περιθώριο για βελτιώσεις όπως μπορείτε να δείτε από την κάτω πλευρά του πραγματικού PCB, έχω συνδέσει πολλές αντιστάσεις σε μια προσπάθεια να συνδέσω τέσσερις ενδεικτικές λυχνίες LED και το μέγεθος του PCB μπορεί επίσης να μειωθεί εάν αυτό γίνεται απαίτηση, Ελπίζω να απολαύσατε το άρθρο και να μάθετε κάτι χρήσιμο. Εάν έχετε οποιεσδήποτε ερωτήσεις, μπορείτε να τις αφήσετε στην ενότητα σχολίων παρακάτω ή να χρησιμοποιήσετε τα φόρουμ μας για να δημοσιεύσετε άλλες τεχνικές ερωτήσεις.