Σε αυτό το σεμινάριο πρόκειται να συνδέσουμε ένα πληκτρολόγιο αφής 4x2 (8 πλήκτρων) με τον μικροελεγκτή ATMEGA32A. Όλοι γνωρίζουμε ότι το πληκτρολόγιο είναι μία από τις πιο σημαντικές συσκευές εισόδου που χρησιμοποιούνται στην ηλεκτρονική μηχανική. Αυτή η μονάδα δεν έχει πραγματικά κλειδιά, αλλά έχει ειδικά σχεδιασμένα χωρητικά μεταλλικά τακάκια και αυτά τα τακάκια είναι πολύ ευαίσθητα. Έτσι, όταν ένα άτομο έρχεται σε επαφή με ένα από τα τακάκια, θα υπάρξει μια χωρητική αλλαγή στον αντίστοιχο βρόχο και αυτή η αλλαγή θα γίνει αισθητή από το ηλεκτρονικό στοιχείο ελέγχου της μονάδας. Ως απόκριση στην αφή, ο αντίστοιχος πείρος εξόδου μαξιλαριού ανεβαίνει ψηλά.
Για οκτώ πλήκτρα αφής θα έχουμε οκτώ εξόδους. Αν και υπάρχουν άλλες δυνατότητες με αυτήν την ενότητα, δεν πρόκειται να τις συζητήσουμε εδώ.
Απαιτούμενα στοιχεία
Υλικό: Μικροελεγκτής ATMEGA32, τροφοδοτικό (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), 100uF πυκνωτής, 100nF πυκνωτής, 1KΩ αντίσταση (2 τεμάχια), Touch keypad module.
Λογισμικό: Atmel studio 6.1 ή Atmel studio 6.2, progisp ή flash magic.
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Στο κύκλωμα, το PORTB του ATMEGA32 είναι συνδεδεμένο με LCD θύρα δεδομένων. Εδώ πρέπει να θυμόμαστε να απενεργοποιήσουμε την επικοινωνία JTAG στο PORTC σε ATMEGA αλλάζοντας τα bytes ασφάλειας, εάν κάποιος θέλει να χρησιμοποιήσει το PORTC ως κανονική θύρα επικοινωνίας. Σε LCD 16x2 υπάρχουν 16 ακίδες πάνω από όλα αν υπάρχει οπίσθιο φως, εάν δεν υπάρχει πίσω φως θα υπάρχουν 14 ακίδες. Κάποιος μπορεί να τροφοδοτήσει ή να αφήσει τις πίσω ακίδες. Τώρα στις 14 ακίδες υπάρχουν 8 ακίδες δεδομένων (7-14 ή D0-D7), 2 ακροδέκτες τροφοδοσίας (1 & 2 ή VSS & VDD ή gnd & + 5v), 3ος ακροδέκτης για έλεγχο αντίθεσης (VEE-ελέγχει πόσο παχύς πρέπει να είναι οι χαρακτήρες φαίνεται) και 3 ακίδες ελέγχου (RS & RW & E)
Στο κύκλωμα, μπορείτε να παρατηρήσετε ότι έχω πάρει μόνο δύο ακίδες ελέγχου, κάτι που δίνει την ευελιξία καλύτερης κατανόησης, το bit αντίθεσης και το READ / WRITE δεν χρησιμοποιούνται συχνά, ώστε να μπορούν να βραχυκυκλωθούν στη γείωση. Αυτό θέτει την οθόνη LCD σε υψηλότερη αντίθεση και λειτουργία ανάγνωσης. Πρέπει απλώς να ελέγξουμε ENABLE και RS καρφίτσες για να στείλουμε ανάλογα χαρακτήρες και δεδομένα.
Οι συνδέσεις που γίνονται για LCD δίνονται παρακάτω:
PIN1 ή VSS στη γείωση
PIN2 ή VDD ή VCC σε ισχύ + 5v
PIN3 ή VEE στη γείωση (δίνει τη μέγιστη αντίθεση καλύτερα για έναν αρχάριο)
PIN4 ή RS (Επιλογή καταχώρησης) στο PD6 του uC
Το PIN5 ή το RW (Ανάγνωση / Εγγραφή) στη γείωση (θέτει την οθόνη LCD σε λειτουργία ανάγνωσης διευκολύνει την επικοινωνία για τον χρήστη)
PIN6 ή E (Ενεργοποίηση) σε PD5 του uC
PIN7 ή D0 έως PB0 του uC
PIN8 ή D1 έως PB1 του uC
PIN9 ή D2 έως PB2 του uC
PIN10 ή D3 έως PB3 του uC
PIN11 ή D4 έως PB4 του uC
PIN12 ή D5 έως PB5 του uC
PIN13 ή D6 έως PB6 του uC
PIN14 ή D7 έως PB7 του uC
Στο κύκλωμα μπορείτε να δείτε ότι χρησιμοποιήσαμε την επικοινωνία 8bit (D0-D7), ωστόσο αυτό δεν είναι υποχρεωτικό, μπορούμε να χρησιμοποιήσουμε την επικοινωνία 4bit (D4-D7), αλλά με το πρόγραμμα επικοινωνίας 4 bit γίνεται λίγο περίπλοκο.
Έτσι, παρατηρώντας τον παραπάνω πίνακα, συνδέουμε 10 ακίδες LCD με ελεγκτή στον οποίο 8 ακίδες είναι καρφίτσες δεδομένων και 2 ακίδες για έλεγχο.
Πριν προχωρήσουμε περαιτέρω, είναι σημαντικό να γνωρίζουμε ότι, η χωρητική μονάδα λειτουργεί για τάση 2,5V. Επίσης, το ρεύμα που αντλείται από τη μονάδα αφής δεν είναι υψηλό. Έτσι, για να πάρουμε 2,5V για τη μονάδα από 5V θα χρησιμοποιήσουμε το κύκλωμα διαχωριστή τάσης.
Το προηγούμενο κύκλωμα διαχωριστή τάσης από αντιστάσεις φαίνεται στο παρακάτω σχήμα.
Τώρα το κύκλωμα διαχωριστή τάσης παρέχει χαμηλές τάσεις για μονάδες και άλλες αναφορές. Όπως φαίνεται στο σχήμα, η τάση εξόδου στο μεσαίο σημείο είναι ένας λόγος αντιστάσεων. Έτσι, για να πάρουμε 2.5v από 5V θα χρησιμοποιήσουμε R1 = R2 = 1KΩ, οπότε για τάση τροφοδοσίας 5V η τάση μέσου σημείου θα είναι 2,5V σε σχέση με τη γείωση. Αυτή η τάση από το κύκλωμα διαχωριστή συνδέεται με τη μονάδα. Ένας πυκνωτής συνδέεται απέναντί του για φιλτράρισμα των αρμονικών, όπως φαίνεται στο διάγραμμα κυκλώματος.
Η θύρα εξόδου της μονάδας αφής συνδέεται με τον ελεγκτή atmega, οπότε όποτε αγγίζεται ένα ταμπόν, η αντίστοιχη έξοδος ακίδων αυξάνεται. Αυτή η λογική αλλαγή γίνεται αισθητή από τον ελεγκτή. Ο ελεγκτής εμφανίζει το ψηφίο στην οθόνη LCD με βάση τον πείρο, ο οποίος πηγαίνει ψηλά.
Για λόγους ασφαλείας, μπορεί κανείς να τραβήξει προς τα κάτω όλους τους πείρους εξόδου της μονάδας στη γείωση μέσω αντιστάσεων 10K, αν και δεν είναι υποχρεωτικό.
Η εργασία του TOUCH KEAYPAD INTERFACE εξηγείται καλύτερα σε βήμα προς βήμα του κώδικα C που δίνεται παρακάτω.