code ne fonctionne pas sur carte nano et bien sur uno???

Bonjour j’ai un code test pour clavier 4x4 (voir ci-dessous) qui fonctionne sur ma carte uno et pas sur ma carte nano?

dans la console serie j’ai le chiffre 4 sur la nano et puis plus rien quelque soit la touche enfoncée du clavier?? quelqu’un a t-il déjà eu ce problème et pourrait éventuellement m’aider? NB je n’ai aucun problème de port et de configuration de carte avec mon pc tout communique bien.

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{‘1’,‘2’,‘3’,‘A’},
{‘4’,‘5’,‘6’,‘B’},
{‘7’,‘8’,‘9’,‘C’},
{’*’,‘0’,’#’,‘D’}
};
byte rowPins[ROWS] = {12, 13, A5, A4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {A3, A2, A1, A0}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
Serial.begin(9600);
}

void loop(){
char key = keypad.getKey();

if (key){
Serial.println(key);
}
}

je n'ai aucun problème de port et de configuration de carte avec mon pc tout communique bien

si tu mets à la place

if (key){
Serial.println("hop");

ça donne quoi ?

AHH :confused: j’y suis, ça marche sur la uno aussi je ne sais pas vraiment pourquoi mais les 8 fils du clavier ne peuvent pas être raccordés sur les bornes A0, A1 … avec la nano.
ils doivent tous être raccordés sur les bornes numériques 2 3 4 5 6 7 8 9.
J’ai tiré cette conclusion en surfant pas mal sur ce problème donc j’ai procédé ainsi en faisant ces corrections (le code est ci-dessous, correction en rouge) et ainsi ça fonctionne aussi bien sur la carte uno que sur la nano alors qu’en raccordant les A0, A1 … sur le clavier ça ne fonctionne que sur la uno.

Voilà ça peut servir à d’autre, désolé du dérangement mais je débute… :confused:

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{‘1’,‘2’,‘3’,‘A’},
{‘4’,‘5’,‘6’,‘B’},
{‘7’,‘8’,‘9’,‘C’},
{’*’,‘0’,’#’,‘D’}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
Serial.begin(9600);
}

void loop(){
char key = keypad.getKey();

if (key){
Serial.println(key);
}
}

Bonjour,

Je ne vois pas pourquoi on ne pourrait pas utiliser A0... sur la nano. C'est le même processeur que la UNO.

kamill:
Bonjour,

Je ne vois pas pourquoi on ne pourrait pas utiliser A0... sur la nano. C'est le même processeur que la UNO.

bonsoir
je pense qu'il y a "une mauvaise connexion/compréhension qq part" 8)
et qu'une des 2 entrées ana supplémentaires du nano (328 cms) a été utilisée (voir les 2) et çà çà ne fonctionne pas en "digital input)

et qu'une des 2 entrées ana supplémentaires du nano (328 cms) a été utilisée (voir les 2)

+1
Normalement elles sont appelées A6 et A7

Artouste:
et qu'une des 2 entrées ana supplémentaires du nano (328 cms) a été utilisée (voir les 2) et çà çà ne fonctionne pas en "digital input)

Bojour,

Oui, mais si ça fonctionne sur l'UNO (ou elles n'existe pas), ça doit fonctionner sur la nano.