Collegamento Tastiera

buona sera,
è il mio primo post e spero di non sbagliare a scrivere qui.
facendo riferimento sempre a quel vecchio topic:
https://forum.arduino.cc/index.php?topic=503402.msg3434563#msg3434563
vorrei collegare questa famosa tastiera 4x4 con un modulo i2c per display:

ad un arduino uno.
il mio problema sono i collegamenti hardware da tastiera a modulo i2c...purtroppo non riesco a vedere la foto di quel post.
con la scheda in oggetto ho già fatto qualche esperimento con display seriale ed è andato tutto ok.
non riesco a trovare neanche la scheda tecnica. se qualcuno mi può aiutare o dare qualche consiglio.
altra domanda...come faccio ad inserire lo sketch per farvelo vedere?
ringrazio in anticipo

Ho diviso io il tuo post creando un nuovo topic relativo SOLO al tuo problema. NON colegarti a thread precedenti se l'argomento non è esattamente lo stesso. Grazie.

Guglielmo

baadaa:
altra domanda...come faccio ad inserire lo sketch per farvelo vedere?

Hai due possibilità ...

  1. se non è eccessivamnete lungo, lo copi direttamente nel tuo post racchiudendolo tra i tag CODE. In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo.

  2. se è troppo lungo (oltre i 9000 caratteri) allora lo puoi allegare al post (in basso a sinistra c'è l'apposito link per gli allegati). Vd. punto 8 del REGOLAMENTO (che dovresti aver già letto per intero!)

Guglielmo

Tiacico:
La Tastiera che vorrei collegare e del tipo 4x4.

Potresti prendere una cosa come QUESTA.

Ma in fin dei conti, ti serve proprio? Ossia usando 8 pin per la tastiera non te ne restano abbastanza per il tuo progetto?

grazie

;D

#include <Keypad_I2C.h>
#include <Keypad.h>
#include <Wire.h>

#define I2CADDR 0x38 // ponticelli A0 A1 A2 aperti ???

const byte Riga = 4; 
const byte Colonna = 4; 
char keys[Riga][Colonna] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte rowPins[Riga] = {0, 1, 2, 3}; 
byte colPins[Colonna] = {4, 5, 6, 7};
Keypad_I2C kpd(makeKeymap(keys), rowPins, colPins, Riga, Colonna, I2CADDR, PCF8574);

void setup(){
  Wire.begin();
  kpd.begin(makeKeymap(keys));
  Serial.begin(9600);
  Serial.println("pronto");
}

void loop(){
  char key = kpd.getKey();
  if (key){
    Serial.println(key);
  }
}

Mi pare che l'immagine con i collegamenti sia questa

E lo sketch usato sia quello del link

Semmai c'è da cambiare

#define I2CADDR 0x27 // oppure 0x3F

baadaa:

byte rowPins[Riga] = {0, 1, 2, 3}; 

byte colPins[Colonna] = {4, 5, 6, 7};
Keypad_I2C kpd(makeKeymap(keys), rowPins, colPins, Riga, Colonna, I2CADDR, PCF8574);

void setup(){
 Wire.begin();
 kpd.begin(makeKeymap(keys));
 Serial.begin(9600);
 Serial.println("pronto");

Occhio, se per la tastiera usi i pin 0 e 1 non puoi usare la Serial!!!
O sposti quei pin o non usi Serial.

Occhio, se per la tastiera usi i pin 0 e 1 non puoi usare la Serial!!!

quei pin, in questo caso, si riferiscono ai pin del PCF8574, non hanno niente a che vedere con i pin di Arduino

brunello22:
quei pin, in questo caso, si riferiscono ai pin del PCF8574, non hanno niente a che vedere con i pin di Arduino

Ah si, scusa, non avevo letto che stesse usando la Keypad_I2C pensavo ancora all'esempio "base" con i pin direttamente connessi.

Resta comunque la mia domanda: ma hai realmente necessità di liberare pin (quindi usandone meno degli 8 standard)?

grazie brunello22 era propri quello che cercavo!!
domani provo il tutto e vi faccio sapere nel frattempo ho preso anche:

dovrebbe essere piu specifico. qualcuno di voi lo ha provato?

il mio progetto prevede su un arduino mini:
un display 4x16 o 2x16
una tastiera 4x4
un lettore rfid
un lettore sd
una memoria 256k

praticamente vorrei fare un dispositivo per raccogliere i punti fedeltà per un negozio su delle carte rfid

sto a buon punto mi mancano di collegare e programmare le unita di memoria e creare un archivio DB....le cose piu difficili!!

diciamo che sto optando per tastiera seriale perché sto a corto di pin... ma comunque andrà è per fare esperimenti e provare collegamenti nuovi.
grazie

baadaa:
diciamo che sto optando per tastiera seriale perché sto a corto di pin...

Mi pare più semplice se invece prendi un adattatore I2C per il display (non lo hai specificato, ma se dici di stare a corto di pin immagino sia connesso direttamente) che è molto più comune e facile da montare (lo saldi direttamente al display, o prendere direttamente un LCD con I2C già montato) e lasci la tastiera come sta, che lo trovo più semplice.
In alternativa prenderli entrambi I2C ed a quel punto hai pin in abbondanza sicuramente! :slight_smile:

buon giorno ho fatto un po di prove

  1. con questo modulo:
    https://www.amazon.it/gp/product/B07B95LMLQ/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
    la tastiera 4x4 funziona benissimo
  2. con questo modulo:
    https://www.amazon.it/dp/B078SVXZHN/ref=pe_3310731_189395851_TE_dp_1
    la tastiera 4x3 funziona benissimo anche grazie a brunello22 che mi ha passato i collegamenti
  3. con lo stesso modulo non sono riuscito a collegare la tastiera 4x4!!!!! o mi sono rincoglionito o mi
    sfugge qualcosa!!
    chi può aiutarmi?

E invece usare il primo per la tastiera 4x4 ed il secondo per il display LCD (visto tra l'altro che sarebbe quello il suo uso normale)?

  1. con lo stesso modulo non sono riuscito a collegare la tastiera 4x4!!!!! o mi sono rincoglionito o mi

perchè come detto nel'altro link, , il P3 non è usabile perchè riservato alla retroilluminazione
Quindi ha solo 7 pin a disposizione e per uan tastiera 4x4 ne servono 8
Come ti ha consigliato DocDoc, usalo per l' LCD