Πίνακας περιεχομένων:
- Βήμα 1: Τι θα χρειαστείτε
- Βήμα 2: Τι είναι το 5-wire Resistive Touch Panel;
- Βήμα 3: Καλωδίωση
- Βήμα 4: Ανάπτυξη λογισμικού
- Βήμα 5: Αναβοσβήνει κατάσταση μηχανήματος
- Βήμα 6: Αναβοσβήνει το κουμπί
- Βήμα 7: Σειριακή επικοινωνία
- Βήμα 8: Ανάγνωση συντεταγμένων
- Βήμα 9: Καθαρισμός
- Βήμα 10: Τελικές σκέψεις
Βίντεο: Αισθητήρας αφής 5-καλωδίων: 10 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Γεια γεια!
Έχει περάσει πολύς καιρός από τότε που εργάζομαι σε αυτόν τον ιστότοπο και αρκετά έχουν αλλάξει φαίνεται! Είμαι τελικά έτοιμος να επιστρέψω πίσω από το τιμόνι για ένα άλλο έργο και νομίζω ότι ήρθε η ώρα να αλλάξω λίγο τα πράγματα μόνος μου!
Έχω στο μυαλό μου εδώ και αρκετό καιρό ένα έργο που βασίζεται στο πιάτο και την μπάλα του 271828, αλλά έχω πολλά να μάθω για τους αισθητήρες και τη θεωρία ελέγχου πριν τελειώσει. Νόμιζα ότι όσο μαθαίνω ένα ή δύο πράγματα, μπορεί να σας πάρω μαζί μου!
Για το σκοπό αυτό, ο στόχος μου για αυτά τα σεμινάρια θα είναι ένα είδος υβριδίου μεταξύ των πιο προσεγμένων μαθημάτων μου και μια εγγραφή για το ίδιο το έργο. Κάθε μεμονωμένο σεμινάριο θα είναι ένα βήμα σε αυτό το ταξίδι και θα περιλαμβάνει λεπτομέρειες που έχω ξεπεράσει στο παρελθόν, όπως ανάπτυξη κώδικα (αντί για συμπληρωμένο κώδικα) και λάθη που κάνω στην πορεία.
Είμαι πολύ ενθουσιασμένος για αυτό το νέο έργο και είμαι ενθουσιασμένος για να δω πόσο καλά λειτουργεί!
Σήμερα απλώς θα αποκτήσουμε έναν απλό πίνακα αφής 5-Wire που θα λειτουργεί με DP-32.
Ας αρχίσουμε!
Βήμα 1: Τι θα χρειαστείτε
Επειδή αυτό το σεμινάριο αφορά τη λειτουργία ενός μόνο αισθητήρα, δεν χρειάζεστε πολλά πέρα από έναν μικροελεγκτή και την οθόνη αφής.
-
Ένας μικροελεγκτής.
Χρησιμοποιώ το DP32 μου με ενσωματωμένη σανίδα ψωμιού γιατί καθιστά απλό απλό το πρωτότυπο
-
Ποικιλία καλωδίων και καλωδίων.
Θα μπορούσα να είχα χρησιμοποιήσει το ενσωματωμένο καλώδιο κορδέλας της οθόνης αφής, αλλά αν σκιστεί τότε ολόκληρο το πάνελ είναι άχρηστο. Αντ 'αυτού, χρησιμοποιώ ένα καλώδιο 6 καλωδίων για να μειώσω την πίεση στο ενσωματωμένο καλώδιο
-
Ο τίτλος 5-αγωγών με αντίσταση αφής!
Είχα έναν πίνακα αφής με 4 σύρματα, αλλά το καλώδιο της κορδέλας έσπασε
Και αυτό είναι!
Βήμα 2: Τι είναι το 5-wire Resistive Touch Panel;
Αν έχετε διαβάσει το σεμινάριο μου για τα 4-σύρματα αφής, θα είστε εξοικειωμένοι με τη γενική ιδέα ενός αισθητήρα αφής με αντίσταση, αλλά τα πάνελ 5-συρμάτων και τα 4-σύρματα λειτουργούν λίγο διαφορετικά.
Μου αρέσει αυτό το πάνελ επειδή μπορείτε να δείτε όλα τα ίχνη σύρματος, καθιστώντας εύκολο να δείτε τι κάνει τι. Στην πρώτη εικόνα, έχω χρωματίσει κάθε ίχνος διαφορετικά. Μπορείτε πιθανώς να δείτε ότι τέσσερα από τα καλώδια (ροζ, κίτρινο, πορτοκαλί και μοβ) το καθένα πηγαίνει σε μία από τις τέσσερις γωνίες. Το μεσαίο καλώδιο (κόκκινο) πηγαίνει στον εύκαμπτο πίνακα αισθητήρων.
Στη δεύτερη εικόνα, έχουμε ορίσει δύο από τα τέσσερα σύρματα (πάνω-δεξιά και κάτω-δεξιά) σε υψηλή τάση (εμφανίζεται με κόκκινο χρώμα), ενώ τα άλλα δύο (πάνω-αριστερά και κάτω-αριστερά) έχουν χαμηλή τιμή τάση (εμφανίζεται με μπλε χρώμα). Αυτό δημιουργεί μια κλίση τάσεων σε ολόκληρο τον πίνακα. Σε αυτή την περίπτωση, η κλίση πηγαίνει κατά μήκος του άξονα Χ, οπότε μια υψηλότερη τάση αντιπροσωπεύει μια υψηλότερη θέση κατά μήκος του άξονα Χ.
Όταν αγγίζουμε το δάχτυλό μας στον πίνακα, αυτό πιέζει τον εύκαμπτο αισθητήρα, συνδέοντας κάπου κατά μήκος της κλίσης του άξονα Χ. Οι αισθητήρες τάσης στον μικροελεγκτή μας μπορούν να αντιληφθούν αυτήν την τάση και να σας πουν πού στον άξονα Χ αγγίζει το δάχτυλό σας!
Στην τρίτη εικόνα, μπορείτε να δείτε πώς αλλάζει η διαμόρφωση για να μας επιτρέψει να αισθανθούμε κατά μήκος του άξονα Υ. Με αυτόν τον τρόπο, μπορούμε να πούμε πού σε 2-δ χώρο αγγίζει το δάχτυλό μας!
Βήμα 3: Καλωδίωση
Όπως πιθανότατα μπορείτε να δείτε στις παραπάνω εικόνες, έχω συνδέσει τις τέσσερις γωνίες μου η καθεμία με τη δική της ψηφιακή ακίδα εξόδου. Αυτό θα μου επιτρέψει να τα θέσω ξεχωριστά σε υψηλά ή χαμηλά. Ο πείρος του αισθητήρα μου συνδέεται με έναν αναλογικό πείρο εισόδου. Το ωραίο σε μια οθόνη αφής 5-καλωδίων, σε αντίθεση με μια 4-καλωδιακή, είναι ότι χρειάζεστε μόνο έναν αναλογικό πείρο, ενώ ένα 4σύρμα απαιτεί 2.
Η καλωδίωσή σας μπορεί να διαφέρει, φυσικά, αλλά η καλωδίωσή μου έχει ως εξής:
Το αναλογικό 0 (pin 6) συνδέεται με τον αισθητήρα (μεσαίο pin)
Digitalηφιακό 3 συνδέεται με το πάνω δεξιά (πάνω-πιο pin)
Digitalηφιακό 2 συνδέεται προς τα επάνω-αριστερά (δεύτερη κορυφαία πινέζα)
Το Digitalηφιακό 1 συνδέεται με το Κάτω-Αριστερά (δεύτερη κάτω καρφίτσα)
Το 0ηφιακό 0 συνδέεται με το Κάτω-Δεξί (το κάτω-πιο pin)
Αξίζει να σημειώσω ξανά ότι χρησιμοποιώ καλώδιο 6 καλωδίων για να μπω μεταξύ του μικροελεγκτή και του πίνακα. Άφησα την επάνω καρφίτσα αυτού του καλωδίου ασύνδετη.
Βήμα 4: Ανάπτυξη λογισμικού
Στο παρελθόν, συνήθως έριχνα ένα ολοκληρωμένο αρχείο λογισμικού για να το χρησιμοποιήσετε, ίσως με μια σύντομη περιγραφή του τι κάνουν όλα. Δεν μου αρέσει αυτό. Θέλω αυτή η σειρά να αφορά έργα σε εξέλιξη και για το σκοπό αυτό θα συμπεριλάβω την πραγματική ανάπτυξη αυτού του λογισμικού από την αρχή μέχρι το τέλος.
Ως συνήθως, θα χρησιμοποιήσω το Arduino IDE, με τον πυρήνα Digilent. Κάθε ενότητα θα περιλαμβάνει ένα αρχείο κώδικα, ένα στιγμιότυπο οθόνης, καθώς και μια περιγραφή των προσθηκών και τι προσπαθούμε να επιτύχουμε.
Προς το παρόν, ξεκινάω με ένα απλό πρόγραμμα αναλαμπής στυλ καθυστέρησης, ακριβώς το ίδιο με αυτό που θα βρείτε στο φάκελο Παραδείγματα. Εάν διαβάσετε τη μακρά κεφαλίδα που έγραψα, θα δείτε ότι κάθε βήμα σε αυτήν τη διαδικασία θα τροποποιεί το πρόγραμμα για να το φέρνει πιο κοντά στον τελικό μας στόχο.
Βήμα 5: Αναβοσβήνει κατάσταση μηχανήματος
Η πρώτη μου κίνηση είναι να αλλάξω τη λειτουργία αναλαμπής από μία που βασίζεται στην "καθυστέρηση ()" σε μηχανή κατάστασης.
Για εκείνους που δεν χρησιμοποιούνται για εναλλαγή δηλώσεων, λειτουργεί παρόμοια με μια δήλωση if. Αυτό (στο πορτοκαλί πλαίσιο) δοκιμάζει τη μεταβλητή "κατάστασης" (η οποία ξεκινά από το 0). Στη συνέχεια, μεταβαίνει στην υπόθεση για την τρέχουσα κατάστασή μας. Θα δείτε ότι η θήκη 0 και 2 είναι υπεύθυνες για την ενεργοποίηση και απενεργοποίηση της λυχνίας LED (αντίστοιχα), ενώ η θήκη 1 και 3 είναι υπεύθυνη για την αναμονή μεταξύ των διακοπτών.
Βήμα 6: Αναβοσβήνει το κουμπί
Στη συνέχεια, ήθελα να χρησιμοποιηθεί το κουμπί για να αναβοσβήνει το φως. Αντί να το περιπλέξω υπερβολικά, απλώς μετακίνησα όλες τις καταστάσεις προς τα κάτω κατά μία (η κατάσταση 0 γίνεται κατάσταση 1 κ.λπ.). Όταν το κάνετε αυτό, προσέξτε να αυξήσετε τις καταστάσεις εξόδου καθώς και την ίδια την κατάσταση (δείτε εικόνα 3).
Διαγράψα επίσης τη δεύτερη κατάσταση "αναμονής". Αυτό σημαίνει ότι το κουμπί ανάβει το φως για ένα δευτερόλεπτο και μπορείτε να το πατήσετε ξανά αμέσως μόλις απενεργοποιηθεί.
Αξίζει να σημειωθεί ότι αυτό το σύστημα καταργεί αυτόματα το κουμπί για εμάς, επειδή πρέπει να περιμένουμε να σβήσει το LED πριν επιστρέψουμε στην κατάσταση 0 όπου το κουμπί μπορεί να ενεργοποιήσει ξανά τον κύκλο.
Βήμα 7: Σειριακή επικοινωνία
Αυτή η ενημέρωση είναι πολύ μικρή. Το μόνο που ήθελα να κάνω ήταν να δημιουργήσω μια Σειριακή σύνδεση και να στείλω μηνύματα. Στην πρώτη εικόνα, μπορείτε να δείτε ότι ξεκινάω το Serial στη λειτουργία εγκατάστασης (). Μέσα στο μηχάνημα κατάστασής μας, πρόσθεσα γραμμές στις καταστάσεις 1 και 3 που θα στέλνουν απλά μηνύματα στον υπολογιστή μέσω σειριακής σειράς.
Βήμα 8: Ανάγνωση συντεταγμένων
Είναι καλό που το τελευταίο βήμα ήταν εύκολο, γιατί αυτό ήταν ένα χάλια.
Για αρχή, έχω προσθέσει μεταβλητές για την οθόνη αφής μας, συμπεριλαμβανομένων ορισμένων μεταβλητών ώρας τόσο για την οθόνη αφής όσο και για το κουμπί μας. Θα δείτε γιατί σε λίγο.
Έχω ξαναγράψει πλήρως την κατάσταση-μηχανή. Είναι λίγο μπερδεμένο να δούμε τον κώδικα, οπότε έχω συμπεριλάβει ένα μπλοκ διάγραμμα που θα πρέπει να απεικονίζει τι έχει γίνει.
Πράγματα που πρέπει να σημειωθούν: Υπάρχουν τρία βήματα "αναμονής" τώρα. Ένα για κάθε διαμόρφωση του πίνακα αφής, για να εγκατασταθούν οι τάσεις πριν από τη μέτρηση και ένα για να δοθεί χρόνος στο κουμπί για σωστή αποσύνδεση. Αυτά τα βήματα αναμονής είναι ο λόγος που ήθελα να δώσω τόσο στο κουμπί όσο και στην οθόνη αφής τις δικές τους μεταβλητές ώρας.
Σημείωση: Η σταθερά DEBOUNCE_TIME μπορεί να είναι λίγο χαμηλή. Μη διστάσετε να το αυξήσετε.
Βήμα 9: Καθαρισμός
Φτάσαμε στην τελική έκδοση του κώδικα για αυτό το έργο!
Αρχικά, έχω προσθέσει μια συνάρτηση που ονομάζεται loop_diff () για τον υπολογισμό του χρόνου που έχει παρέλθει. Το εσωτερικό ρολόι για το DP32 είναι ένα ανυπόγραφο μακρύ και, αν και είναι εξαιρετικά απίθανο, υπάρχει η πιθανότητα το ρολόι να κάνει βρόχο κάποια στιγμή κατά τη διάρκεια εκτέλεσης αυτού του κώδικα*. Σε αυτή την περίπτωση, αφαιρώντας απλώς τον τρέχοντα χρόνο από τον χρόνο που έχει αποθηκευτεί σε btn_time ή panel_time θα μας δώσει κάτι περίεργο, οπότε έγραψα το loop_diff () για να εντοπίσω πότε εμφανίζονται βρόχοι και να συμπεριφερόμαστε ανάλογα.
Έχω κάνει και λίγο καθαρισμό. Έχω καταργήσει τη μεταβλητή "state_time" που δεν χρησιμοποιείται πλέον. Έχω αλλάξει από την ετικέτα LED_BUILTIN (που είναι πρότυπο Arduino) στην ετικέτα PIN_LED1 (η οποία είναι τυπική για το chipKit και το DP32). Έχω επίσης αφαιρέσει όλα τα μηνύματα μέσω Serial σχετικά με την έναρξη και τον τερματισμό της διαδικασίας, γεγονός που καθιστά τα δεδομένα μας μέσω Serial πολύ πιο καθαρά.
*Έκανα τα μαθηματικά πριν από χρόνια και νομίζω ότι για τη συνάρτηση millis () θα χρειαζόταν κάτι σαν μια εβδομάδα σταθερού χρόνου εκτέλεσης πριν η μεταβλητή κυλήσει.
Βήμα 10: Τελικές σκέψεις
Και αυτό είναι!
Εάν έχετε ακολουθήσει, θα πρέπει τώρα να έχετε μια οθόνη αφής εργασίας συνδεδεμένη στον μικροελεγκτή σας! Αυτό ήταν ένα μικρό έργο, αλλά είναι μέρος ενός μεγαλύτερου έργου. Δουλεύω για κάτι σαν το Plate and Ball του 271828 και έχω πολύ δρόμο να διανύσω μέχρι να συμβεί αυτό. Θα προσπαθήσω να σας πάρω μαζί μου για όλη τη διαδικασία και κάθε μέρος θα πρέπει να είναι το δικό του μικρό έργο.
Αυτή είναι μια διαδικασία εκμάθησης για μένα, οπότε μη διστάσετε να αφήσετε τις σκέψεις και τις προτάσεις σας στα παρακάτω σχόλια.
Ευχαριστώ και θα τα πούμε την επόμενη φορά!
Συνιστάται:
Εύκολος, φθηνός και αξιόπιστος αισθητήρας αφής με μόνο 3 μέρη: 3 βήματα
Εύκολος, φθηνός και αξιόπιστος αισθητήρας αφής με μόνο 3 μέρη: Ο έλεγχος όλων των ειδών ηλεκτρονικών συσκευών με το άγγιγμα του δακτύλου σας μπορεί να είναι αρκετά χρήσιμος. Σε αυτό το διδακτικό θα σας δείξω πώς να φτιάξετε έναν εύκολο αλλά ισχυρό αισθητήρα αφής που λειτουργεί άψογα. Το μόνο που χρειάζεστε είναι ένα τυπικό τρανζίστορ και δύο
Τρία κυκλώματα αισθητήρα αφής + κύκλωμα χρονοδιακόπτη αφής: 4 βήματα
Τρία κυκλώματα αισθητήρα αφής + κύκλωμα χρονοδιακόπτη αφής: Ο αισθητήρας αφής είναι ένα κύκλωμα που ενεργοποιείται όταν εντοπίζει την αφή στις ακίδες αφής. Λειτουργεί σε παροδική βάση, δηλαδή το φορτίο θα είναι ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ μόνο για την ώρα που γίνεται το άγγιγμα στις καρφίτσες. Εδώ, θα σας δείξω τρεις διαφορετικούς τρόπους για να κάνετε ένα αισθητήριο αφής
Απλός αισθητήρας αφής με χρήση τρανζίστορ D882: 7 βήματα
Απλός αισθητήρας αφής με χρήση τρανζίστορ D882: Hii φίλε Σήμερα θα φτιάξω έναν απλό αισθητήρα αφής χρησιμοποιώντας το τρανζίστορ D882 στο σπίτι. Αυτός ο αισθητήρας αφής λειτουργεί όταν αγγίζουμε ένα καλώδιο. Εάν θέλουμε το LED να λάμπει ψηλά, πρέπει να αγγίξουμε δύο καλώδια. Χρησιμοποιώντας αυτό το κύκλωμα μπορούμε να κάνουμε
Digitalηφιακός αισθητήρας αφής με χρήση LM358: 3 βήματα
Digitalηφιακός αισθητήρας αφής με χρήση LM358: Οι αισθητήρες είναι το καλύτερο πράγμα για να λειτουργήσετε με ηλεκτρονικά DIY και αυτό είναι το δεύτερο διδάξιμο από μια σειρά Instructables που δημιουργεί διαφορετικούς αισθητήρες συμβατούς με διάφορους μικροελεγκτές. Στο προηγούμενο εκπαιδευτικό, σας έδειξα πώς
Αισθητήρας αφής & Αισθητήρας ήχου Έλεγχος φώτων AC/DC: 5 βήματα
Αισθητήρας αφής & Αισθητήρας ήχου Έλεγχος φώτων AC/DC: Αυτό είναι το πρώτο μου έργο και αυτό λειτουργεί με βάση δύο βασικούς αισθητήρες, ένας είναι ο αισθητήρας αφής και ο δεύτερος είναι ο αισθητήρας ήχου, όταν πατάτε την επιφάνεια αφής στον αισθητήρα αφής το φως AC θα αλλάξει ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ, αν το αφήσετε, το Φως θα είναι Σβηστό και το ίδιο