Sommario:
- Passaggio 1: Distinta base
- Fase 2: Schema e Cicruit
- Passaggio 3: il codice
- Passaggio 4: correzione dei valori
- Passaggio 5: progetto dopo critiche e revisioni
- Passaggio 6: dopo alcuni lavori di saldatura
- Passaggio 7: il momento della verità
- Passaggio 8: la fine
Video: Tastiera a un pin 4×4: 10 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ogni volta che vedo una tastiera, viene fornita con molti pin, è un grande spreco dei tuoi pin Arduino, quindi possiamo eseguire una tastiera con uno e un solo pin?. La risposta è qui.
Passaggio 1: Distinta base
Hardware:
01 Arduino UNO
02 taglieri
01 LCD con I2C
16 pulsanti
04 resistenze 1,5 kΩ
04 resistenze 620 Ω
04 resistenze 220 Ω
08 resistenze 100 Ω
01 resistenza 1 kΩ
07 Ponticelli
Software:
Arduino IDE installato sul tuo PC
Fase 2: Schema e Cicruit
L'idea generale è che abbiamo una matrice 4*4 di pulsanti collegati verticalmente a terra dal cavo destro e orizzontalmente dall'altro cavo (il cavo del pulsante) e resistori da 1,5 kΩ, 620Ω, 220Ω e 100Ω, le estremità di le 4 righe sono collegate da quattro resistori da 100Ω come mostrato nello schema.
Ogni volta che si preme un pulsante si chiude il circuito e la corrente attraversa un percorso diverso e una catena di resistori diversa, ecco perché il pin A0 riceve una lettura analogica diversa per ogni pulsante. Tutto ciò di cui hai bisogno ora è codificare.
Passaggio 3: il codice
#includere
#includere
LiquidCrystal_I2C lcd(0x3f, 20, 4);
int Pulsante = A0;
int valore di lettura;
configurazione nulla()
{
Serial.begin(9600);
lcd.begin();
pinMode(Pulsante, INGRESSO);
lcd.backlight();
lcd.print("Ciao mondo");
ritardo (2000);
lcd.clear();
lcd.print("Tastiera a un pin 4*4");
ritardo (2000); }
ciclo vuoto()
{
readvalue = analogRead(Button);
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{}}}}}}}}}}}}}}} }
Passaggio 4: correzione dei valori
Quando apri il monitor seriale mostrerà un valore di 1023, se premi un pulsante ti darà un'altra lettura devi prendere quei valori e apportare alcune modifiche al codice
Passaggio 5: progetto dopo critiche e revisioni
Non c'è dubbio che siamo tutti qui per imparare e condividere le nostre conoscenze, grazie ad alcuni commenti lasciati da alcune persone della community che sono stati molto utili, ho deciso di apportare alcune modifiche e miglioramenti al mio progetto:
L'hardware:
Ho deciso di saldare tutti i componenti in un PCB per evitare il problema della cattiva connessione nelle breadboard.
Il codice:
Un amico mi ha consigliato di usare un software antirimbalzo ed è solo un ciclo (ciclo "for" per esempio) per far impiegare del tempo al programma per scegliere una lettura, significa che fa molte letture (500 nel mio esempio) ma richiede solo l'ultimo.
for (i=1; i<= 500; i++) { // prendi solo il 500esimo analogread
value = analogRead(Button);} // questo aiuta a prendersi un po' di tempo ed evitare letture errate
Un altro amico grazie a lui mi ha consigliato di confrontare "readvalue" con un intervallo di valori non uno perché "readvalue" prende molti valori per lo stesso pulsante. La "A" ad esempio dà una lettura di: 849, 850, 851 852, 853, 854, 855 quindi è un intervallo di 7 valori: una soglia (852) e 3 valori a sinistra e a destra. quello che dobbiamo fare qui è confrontare il valore assoluto della differenza tra "readvalue" e "852" con "3".
if(abs(readvalue-852)<=8){lcd.clear();lcd.print("A");}
Passaggio 6: dopo alcuni lavori di saldatura
Passaggio 7: il momento della verità
Come puoi vedere il programma a volte confonde i pulsanti ma funziona ancora, in teoria non c'è niente che non va con il circuito ma il codice ha bisogno di più calibrazione.
Passaggio 8: la fine
Spero che questo progetto ti piaccia e che provi a farlo, forse farai meglio di me.
Chiedimi se hai domande, lascia commenti e non dimenticare di votarmi se ti piace.
Consigliato:
Tastiera analogica fai-da-te con tastiera USB: 4 passaggi
Tastiera analogica fai-da-te per tastiera USB: ho realizzato questo progetto solo per divertimento, ma questa cosa funziona come una normale tastiera con tutto. Buon divertimento
Guida all'uso del Raspberry Pi con tastiera a un pin: 9 passaggi
Tastiera One Pin Guida all'uso del Raspberry Pi: DISCLAIMER: QUESTA È UNA GUIDA ALL'UTILIZZO DI UN PRODOTTO OPEN SOURCE: LA TASTIERA A UN PIN. QUESTO NON È UN PROGETTO FAI DA TE. SE VUOI REALIZZARE LE SCHEDE DA SOLO, I FILE EAGLE SI TROVANO ALLA FINE DEL TUTORIAL. Cos'è la One Pin Keypad? Tastiera a un pin
Interfaccia della tastiera con 8051 e visualizzazione dei numeri della tastiera in 7 segmenti: 4 passaggi (con immagini)
Interfaccia della tastiera con 8051 e visualizzazione dei numeri della tastiera in 7 segmenti: In questo tutorial ti parlerò di come possiamo interfacciare la tastiera con 8051 e visualizzare i numeri della tastiera in un display a 7 segmenti
Tastiera Das veloce e sporca (tastiera vuota): 3 passaggi
Tastiera Das veloce e sporca (tastiera vuota): una tastiera Das è il nome della tastiera più popolare senza iscrizioni sui tasti (tastiera vuota). La tastiera Das viene venduta a $ 89,95. Questo tutorial ti guiderà nel crearne uno tu stesso con qualsiasi vecchia tastiera che hai in giro
Pulizia della tastiera in alluminio Apple o di qualsiasi altra tastiera soft-touch: 5 passaggi
Pulizia della tastiera Apple in alluminio… o di qualsiasi altra tastiera soft-touch: per quanto tu o io potremmo cercare di mantenere le nostre tastiere Apple in alluminio, diventano sporche dopo circa un anno. Questo istruibile è per aiutarti a pulirlo. Fai attenzione, perché non sono responsabile se la tua tastiera si rompe mentre lo fai …. SUCKS F