Keypad.h e incompatibilità pin

Sto portando avanti un progetto che comprende un arduino nano, un sensore mrfc522, un LCD I2C più vari pulsanti e attuatori che si "mangiano" quasi tutti i pin digitali a disposizione. Restano 6 pin analogici e 2 pin digitali.

Dovendo introdurre anche un keypad a 16 tasti, avevo pensato di sfruttare la configurazione con partitori resistivi, che consente di occupare un solo pin analogico. Per provare il programma ho comprato un tastierino cinese tipo questo e ho montato lo schema suggerito qui.

Purtroppo non funziona. Il motivo è semplice: i tasti non hanno una resistenza di contatto molto piccola, che non influenzerebbe la rete esterna di resistori, ma una resistenza di parecchie decine di Ohm, in alcuni casi anche 800 (e pure variabile), che falsano completamente i risultati e introducono numeri a caso o, talvolta, nessun numero. Pazienza; in attesa di un nuovo keypad (stavolta NON cinese) ho provato a proseguire il progetto connettendo la tastiera in modo canonico (4 righe x 4 colonne). Ho sei pin analogici: A0, A1, A2, A3, A6, A7 e due pin digitali: 2 e 8. I pin A4 e A5 sono riservati alla I2C del display. Provato e, sorpresa: non funzionano la terza e quarta colonna, quelle connesse ai pin A6 e A7. Pensando a un errore ho spostato le due colonne su A4 e A5 e, sorpresa: il keypad funziona.

Conclusione: non comprate keypad cinesi se non per utilizzarli in forma canonica (libreria: keypad.h).

Domanda: qualcuno sa perché i pin A6 e A7 non funzionano con la libreria keypad.h?

Grazie,

Ciao,
P.

I pin A6 e A7 sono solo pin analogici. Non hanno una funzione di pin Digitale entrata/uscita.
Ciao Uwe

pgiagno:
Domanda: qualcuno sa perché i pin A6 e A7 non funzionano con la libreria keypad.h?

Come ti ha detto Uwe, bastava guardare il datasheet per scoprire che quei due pin sono utilizzabili SOLO come analogici :wink:

Guglielmo

Grazie, uwe. C'era scritto anche qui, ma me n'ero dimenticato.

Ciao,
P.

P.S. Guglielmo, non affondare il coltello nella piaga