Duvida com vetores

Boa tarde pessoal,

Estou com o seguinte problema: meu projeto é fazer um menu de um sistema de segurança que o usuário consiga alterar através de um teclado a senha do sistema e os numeros de chamada da discagem que será realizado por um modulo gsm. Sendo estes dados salvos na memoria eeprom.

A parte da senha esta funcionando corretamente. Porem quando adiciono um novo vetor para armazenar os numeros de discagem, os vetores se juntam em um. Se alguem puder me dar uma luz Agradeço.

Segue a parte do codigo, não sei se estou declarando os vetores corretamente.

int a = 0;
//Senha
char pass [4];
//numeros de discagem
char u[9];
char d[9];
char t[9];

//Programa inicial
void setup() {

Serial.begin(9600);

//numero de discagem 1
for (a = 0; a < 4; a++) {
pass [a] = (EEPROM.read(a));
Serial.print(pass[a]);
}

key_init(); //Inicializa o sistema
}

//editar senha do sistema
if (k == 4 && key == ‘*’) {
int entrada = 0; // inicializa entrada
display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(5, 3);
display.println(“Nova senha”);
display.display();

int a = 0;
while (a < 4) { // enquanto contrador for menor que 4
char key = customKeypad.getKey();
if (key != NO_KEY) { // se algo foi teclado
EEPROM.write(a, key);
a += 1;
display.setCursor(entrada, 28); //Muda de coluna
display.setTextSize(1);
display.print(key); //digitos da senha
display.display();

entrada += 10;
//Faz entrada = entrada + 1
if (entrada == 40) {
for (int a = 0; a < 4; a++) {
pass[a] = char(EEPROM.read(a));
Serial.print(pass);
}
display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(5, 3);
display.println(“Senha Salva”);
display.setTextSize(1);
display.setCursor(20, 18);
display.print(pass);
display.display();
delay (1000);
Serial.println(pass);
men();
}
}
}
}

//editar numeros da chamada
if (k == 1 && key == ‘*’) {
display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(22, 3);
display.println(“Digite:”);
display.drawRoundRect(0, 15, 84 , 22, 3, 2);
display.setCursor(5, 17);
display.println(“1 - numero 1”);
display.drawRoundRect(0, 25, 84 , 22, 3, 2);
display.setCursor(5, 28);
display.println(“2 - numero 2”);
display.setCursor(5, 38);
display.println(“3 - numero 3”);
display.display();
w = 1;
}

if(w == 1 && key == ‘1’){

//NUMERO 1
int entrada = 0; // inicializa entrada
display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(5, 3);
display.println(“Novo Numero 1”);
display.display();

int a = 0;
while (a < 9) { // enquanto contrador for menor que 4
char key = customKeypad.getKey();
if (key != NO_KEY) { // se algo foi teclado
// EEPROM.write(a, key);
a += 1;
display.setCursor(entrada, 28); //Muda de coluna
display.setTextSize(1);
display.print(key); //digitos da senha
display.display();

entrada += 10;
//Faz entrada = entrada + 1
if (entrada == 90) {
for (int a = 0; a<9; a++) {
u[a] = char(EEPROM.read(a));
Serial.print(u);
}
display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(5, 3);
display.println(“Numero 1 Salvo”);
display.setTextSize(1);
display.setCursor(20, 18);
display.print(u);
display.display();
delay (1000);
Serial.println(u);
men();
}}
}
}

//NUMERO 2

if(w == 1 && key == ‘2’){
int entrada = 0; // inicializa entrada
int count = 0;
display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(5, 3);
display.println(“Novo Numero 2”);
display.display();

// int a = 0;
while (count < 9) { // enquanto contrador for menor que 4
char key = customKeypad.getKey();
if (key != NO_KEY) { // se algo foi teclado
//EEPROM.write(a, key);
d[count] = key; // aramazena o novo dígito
Serial.println(d);

count += 1; // próximo dígito
// a += 1;
display.setCursor(entrada, 28); //Muda de coluna
display.setTextSize(1);
display.print(key); //digitos da senha
display.display();

entrada += 10;
//Faz entrada = entrada + 1
if (count == 9) {

display.clearDisplay();
display.setTextSize(1);
display.drawRoundRect(0, 0, 84 , 14, 3, 2);
display.setCursor(5, 3);
display.println(“Numero 2 Salvo”);
display.setTextSize(1);
display.setCursor(20, 18);
display.print(d);
display.display();
delay (1000);
Serial.println(d);
men();
}}
}
}

Boas
Penso que não estejas a colocar todo o código pois não vejo onde tenhas a função key_init() declarada nem certas variáveis.Devem te estar a faltar alguns includes nesse código já que isso não compila sequer

Desculpe, é que apenas coloquei uma parte mesmo… bom segue arquivo do código completo. Obrigado.

novop.ino (13 KB)