Είναι ένα GPIO expander, είναι ένα keypad matrix driver... είναι το Adafruit TCA8418 Keypad Matrix και το GPIO Expander Breakout - ένα χαριτωμένο και ισχυρό I2C GPIO expander και keypad matrix driver! Αυτό το τσιπ είναι αρκετά δυνατό, με τη δυνατότητα να λειτουργεί ως πολυεργαλείο I2C για χειρισμό πληκτρολογίων, κουμπιών ή LED.
Αυτό το τσιπ έχει συνολικά 18 'I/O' pins', 10 columns και 8 rows. Μπορείτε φυσικά να τα τακτοποιήσετε ως matrix κουμπιών για συνολικά 80 διακόπτες. Ή μπορείτε να χρησιμοποιήσετε οποιοδήποτε υποσύνολο ως μεμονωμένες GPIO input ή outputs. Το ωραιότερο μέρος του keypad driver είναι ότι έχει μια ουρά συμβάντων 10 στοιχείων. Δεδομένου ότι είναι I2C, είναι πολύ εύκολο στη χρήση με οποιονδήποτε μικροελεγκτή ή υπολογιστή.
Τα GPIO expanders λειτουργούν ως εξής: έχετε μια πλακέτα με κάποιο αριθμό GPIO αλλά όχι αρκετό για το έργο σας - ίσως χρειάζεστε περισσότερα κουμπιά ή LED. Συνδέστε το μέσω I2C και, στη συνέχεια, μπορείτε να στείλετε/λάβετε εντολές I2C για να ελέγξετε τις ακίδες GPIO για να τις γράψετε και να τις διαβάσετε. Θα είναι πιο αργή από την άμεση πρόσβαση στο GPIO, αλλά ίσως δεν έχει σημασία αν χρειάζεται ένα χιλιοστό του δευτερολέπτου αντί για ένα μικροδευτερόλεπτο. Χρειάζεστε μόνο τις δύο ακίδες I2C και μπορείτε ακόμη και να μοιραστείτε τη θύρα I2C με άλλους αισθητήρες και συσκευές. Μπορείτε ακόμη και να προσθέσετε περισσότερα επεκτάσεις για τεράστιο έλεγχο I/O!
Για το GPIO expansion, οποιαδήποτε από τα 18 pins μπορούν να χρησιμοποιηθούν ως input ή output. Για inputs, μπορείτε επίσης να ορίσετε ένα προαιρετικό pull-up και ένα interrupt output στο INT pin για σήματα ανόδου ή καθόδου. Υπάρχει επίσης ένα debouncer που μπορεί να προσθέσει λίγο low-pass φιλτράρισμα για θορυβώδεις διακόπτες. Για τις outputs, μπορείτε να τις ρυθμίσετε high ή low, ιδανικά για βασική οδήγηση LED.
Για Keypad Matrix driving, υπάρχουν έως και 10 columns και 8 rows. Δεν μπορείτε να αλλάξετε ένα row σε column ή το αντίστροφο. Ο χειρισμός των pull-ups και της σάρωσης matrix γίνεται για εσάς, με πατήματα πλήκτρων και απελευθερώσεις που καταγράφονται σε μια ουρά FIFO 10 στοιχείων. Μπορείτε φυσικά να ρυθμίσετε το interrupt output με το πάτημα ή την απελευθέρωση του πλήκτρου, ώστε να μην χρειάζεται να το κάνετε ξανά και ξανά.
Έχουμε γράψει βιβλιοθήκες Arduino και CircuitPython/Python για το TCA8418, ώστε να μπορείτε να ξεκινήσετε είτε έχετε Arduino UNO είτε Raspberry Pi 4 - ή οτιδήποτε άλλο. Υπάρχει επίσης ένα Linux Kernel driver module αν θέλετε να υποστηρίζεται από έναν υπολογιστή με μία πλακέτα.
Για να προχωρήσετε γρήγορα, δημιουργήσαμε ένα προσαρμοσμένο PCB με STEMMA QT form factor, διευκολύνοντας τη διασύνδεση. Υπάρχει ένας ενσωματωμένος regulator 3.3V και level shifting στα I2C lines, ώστε να μπορείτε να το χρησιμοποιήσετε με μικροελεγκτές 3V ή 5V.