Πίνακας περιεχομένων:
- Βήμα 1: Λογαριασμός Υλικών
- Βήμα 2: Σχηματικό και Cicruit
- Βήμα 3: Ο κώδικας
- Βήμα 4: Διόρθωση τιμών
- Βήμα 5: Έργο μετά από κριτική και ανασκόπηση
- Βήμα 6: Μετά από μερικές εργασίες συγκόλλησης
- Βήμα 7: Η στιγμή της αλήθειας
- Βήμα 8: Το τέλος
Βίντεο: Πληκτρολόγιο One Pin 4 × 4: 10 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Κάθε φορά που βλέπω ένα πληκτρολόγιο, έρχεται με πολλές καρφίτσες, είναι μια μεγάλη σπατάλη των καρφιών σας Arduino, οπότε μπορούμε να εκτελέσουμε ένα πληκτρολόγιο με έναν και μόνο έναν πείρο;. Η απάντηση είναι εδώ.
Βήμα 1: Λογαριασμός Υλικών
Σκεύη, εξαρτήματα:
01 Arduino UNO
02 Breadboards
01 LCD με I2C
16 Πιέστε τα κουμπιά
04 αντιστάσεις 1,5 kΩ
04 αντιστάσεις 620 Ω
04 αντιστάσεις 220 Ω
08 αντιστάσεις 100 Ω
01 αντίσταση 1 kΩ
07 Σύρματα βραχυκυκλωτήρων
Λογισμικό:
Το Arduino IDE είναι εγκατεστημένο στον υπολογιστή σας
Βήμα 2: Σχηματικό και Cicruit
Όλη η ιδέα είναι ότι έχουμε 4*4 μήτρα κουμπιών πίεσης που συνδέονται κάθετα στο έδαφος με το σωστό καλώδιο και οριζόντια από το άλλο καλώδιο (το κουμπί) και αντιστάσεις 1,5 kΩ, 620Ω, 220Ω και 100Ω, τα άκρα του οι 4 σειρές συνδέονται με τέσσερις αντιστάσεις 100Ω όπως φαίνεται στο σχήμα.
Κάθε φορά που πατάτε ένα κουμπί κλείνετε το κύκλωμα και το ρεύμα περνάει από διαφορετική διαδρομή και διαφορετική αλυσίδα αντιστάσεων, γι 'αυτό το pin A0 λαμβάνει διαφορετική αναλογική ανάγνωση για κάθε κουμπί. Το μόνο που χρειάζεστε τώρα είναι η κωδικοποίηση.
Βήμα 3: Ο κώδικας
#περιλαμβάνω
#περιλαμβάνω
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int Κουμπί = A0;
int readvalue?
void setup ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (Κουμπί, ΕΙΣΟΔΟΣ);
lcd. backlight ();
lcd.print ("Hello World");
καθυστέρηση (2000).
lcd.clear ();
lcd.print ("Ένα pin 4*4 πληκτρολόγιο");
καθυστέρηση (2000). }
κενός βρόχος ()
{
readvalue = analogRead (Κουμπί);
Serial.println (readvalue);
if (readvalue == 852) {lcd.clear (); lcd.print ("A");}
else {if (readvalue == 763) {lcd.clear (); lcd.print ("B");}
else {if (readvalue == 685) {lcd.clear (); lcd.print ("C");}
else {if (readvalue == 965) {lcd.clear (); lcd.print ("D");}
else {if (readvalue == 565) {lcd.clear (); lcd.print ("9");}
else {if (readvalue == 614) {lcd.clear (); lcd.print ("6");}
else {if (readvalue == 360) {lcd.clear (); lcd.print ("3");}
else {if (readvalue == 335) {lcd.clear (); lcd.print ("#");}
else {if (readvalue == 396) {lcd.clear (); lcd.print ("8");}
else {if (readvalue == 349) {lcd.clear (); lcd.print ("5");}
else {if (readvalue == 235) {lcd.clear (); lcd.print ("2");}
else {if (readvalue == 279) {lcd.clear (); lcd.print ("0");}
else {if (readvalue == 452) {lcd.clear (); lcd.print ("7");}
else {if (readvalue == 271) {lcd.clear (); lcd.print ("4");}
else {if (readvalue == 170) {lcd.clear (); lcd.print ("1");}
else {if (readvalue == 92) {lcd.clear (); lcd.print ("*");} else {}}}}}}}}}}}}}}}}
Βήμα 4: Διόρθωση τιμών
Όταν ανοίξετε το σειριακό μόνιτορ, θα εμφανιστεί μια τιμή 1023, αν πατήσετε ένα κουμπί θα σας δώσει άλλη ανάγνωση, πρέπει να λάβετε αυτές τις τιμές και να κάνετε κάποιες αλλαγές στον κώδικα
Βήμα 5: Έργο μετά από κριτική και ανασκόπηση
Δεν υπάρχει αμφιβολία ότι όλοι είμαστε εδώ για να μάθουμε και να μοιραστούμε τις γνώσεις μας, χάρη σε κάποια σχόλια που άφησαν κάποιοι από την κοινότητα που ήταν πολύ χρήσιμα, αποφάσισα να κάνω κάποιες προσαρμογές και βελτιώσεις στο έργο μου:
Το υλικό:
Αποφάσισα να κολλήσω όλα τα εξαρτήματα σε ένα PCB για να αποφύγω το πρόβλημα της κακής σύνδεσης στις σανίδες ψωμιού.
Ο κώδικας:
Ένας φίλος με συμβούλεψε να χρησιμοποιήσω ένα λογισμικό αποσυναρμολόγησης και είναι απλώς ένας βρόχος (για παράδειγμα ο βρόχος "για") για να κάνει το πρόγραμμα να πάρει λίγο χρόνο για να διαβάσει, σημαίνει ότι διαβάζει πολλά (500 στην εξέτασή μου) αλλά διαρκεί μόνο το τελευταίο.
για (i = 1; i <= 500; i ++) {// πάρτε μόνο την 500η αναλογική ανάγνωση
value = analogRead (Κουμπί);} // αυτό θα σας βοηθήσει να αφιερώσετε λίγο χρόνο και να αποφύγετε κακές αναγνώσεις
Ένας άλλος φίλος χάρη σε αυτόν με συμβούλεψε να συγκρίνω το "readvalue" με ένα εύρος τιμών όχι μία επειδή η "readvalue" παίρνει πολλές τιμές για το ίδιο κουμπί. Το "A" για παράδειγμα δίνει μια ανάγνωση των: 849, 850, 851 852, 853, 854, 855 άρα είναι ένα εύρος 7 τιμών: ένα κατώφλι (852) και 3 τιμές αριστερά και δεξιά. αυτό που πρέπει να κάνουμε εδώ είναι να συγκρίνουμε την απόλυτη τιμή της διαφοράς μεταξύ "readvalue" και "852" με "3".
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
Βήμα 6: Μετά από μερικές εργασίες συγκόλλησης
Βήμα 7: Η στιγμή της αλήθειας
Όπως μπορείτε να δείτε, το πρόγραμμα μερικές φορές μπερδεύει τα κουμπιά αλλά εξακολουθεί να λειτουργεί, θεωρητικά δεν υπάρχει τίποτα λάθος με το κύκλωμα, αλλά ο κώδικας χρειάζεται περισσότερη βαθμονόμηση.
Βήμα 8: Το τέλος
Ελπίζω να σας αρέσει αυτό το έργο και προσπαθείτε να το κάνετε, ίσως να κάνετε καλύτερα από μένα.
Ρωτήστε με εάν έχετε ερωτήσεις, αφήστε σχόλια και μην ξεχάσετε να με ψηφίσετε αν σας αρέσει αυτό.
Συνιστάται:
Θήκη για πληκτρολόγιο Preonic Rev 3: 4 βήματα
Θήκη για το πληκτρολόγιο Preonic Rev 3: Πρόσφατα αγόρασα ένα Preonic Rev. 3 από το Drop.com (βύσμα χωρίς ντροπή: https://drop.com/?referer=ZER4PR) και ανυπομονούσα να το κατασκευάσω. Δυστυχώς, δεν έκανα αρκετή έρευνα για να διαπιστώσω ότι το Rev. 3 PCB δεν θα ταιριάζει στις θήκες Rev.2 και τα περισσότερα από
Οδηγός χρήσης Raspberry Pi πληκτρολογίου One Pin: 9 βήματα
Οδηγός χρήσης Raspberry Pi πληκτρολογίου One Pin: ΑΠΟΠΟΙΗΣΗ ΑΓΩΓΗΣ: ΑΥΤΟΣ ΕΙΝΑΙ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΠΡΟDΟΝ ΑΝΟΙΚΤΗΣ ΠΗΓΗΣ: ΤΟ ΕΝΑ ΠΛΗΚΤΡΟΛΟΓΙΟ PIN. ΑΥΤΟ ΔΕΝ ΕΙΝΑΙ ΕΡΓΟ DIY. ΑΝ ΘΕΛΕΤΕ ΝΑ ΦΤΙΑΞΕΤΕ ΤΑ ΔΙΟΙΚΗΤΙΚΑ ΣΥΜΒΟΥΛΙΑ, ΤΑ ΑΡΧΙΚΑ ΑΡΧΕΙΑ ΜΠΟΡΟΥΝ ΝΑ ΒΡΟΥΝΤΑΙ ΣΤΟ ΤΕΛΟΣ ΤΟΥ ΦΡΟΝΤΙΣΤΗΡΙΟΥ. Τι είναι το πληκτρολόγιο One Pin; Πληκτρολόγιο One Pin
Πληκτρολόγιο USB RGB One Button: 6 βήματα (με εικόνες)
RGB One Button USB Keyboard: Έχετε νιώσει ποτέ την ανάγκη να έχετε ένα μικροσκοπικό, αλλά λειτουργικό, πληκτρολόγιο με οπίσθιο φωτισμό RGB, όχι μεγαλύτερο από το μέγεθος ενός μόνο πλήκτρου; Οχι? Ποιος νοιάζεται, φτιάξτε ένα έτσι κι αλλιώς! Αυτό το διδακτικό θα σας καθοδηγήσει στα βήματα που χρειάζεστε για να κάνετε το δικό σας, ελαφρώς άχρηστο
Γρήγορο και βρώμικο πληκτρολόγιο Das (κενό πληκτρολόγιο): 3 βήματα
Πληκτρολόγιο Quick and Dirty (Blank Keyboard): Ένα πληκτρολόγιο Das είναι το όνομα του πιο δημοφιλούς πληκτρολογίου χωρίς επιγραφές στα πλήκτρα (κενό πληκτρολόγιο). Το πληκτρολόγιο Das πωλείται για 89,95 $. Αυτό το διδακτικό θα σας καθοδηγήσει αν και να το φτιάξετε μόνοι σας με οποιοδήποτε παλιό πληκτρολόγιο έχετε
ISP 6 Pin to 8 Pin Socket: 4 βήματα
ISP 6 Pin to 8 Pin Socket: Ο λόγος που έχτισα κυρίως αυτό το έργο ήταν να προγραμματίσω το ATTiny45, το οποίο έχει σύνδεση 8 ακίδων, ενώ το USBtinyISP μου (από τη Ladyada) έχει μόνο σύνδεση 10 ακίδων και 6 ακίδων. Αφού έψαξα στο διαδίκτυο για περίπου 3-4 εβδομάδες, δεν βρήκα τίποτα