Buenos días,
Estoy realizando un proyecto con RFID y quiero crear una matriz con ID ya conocidas. Estos ID son arrays de longitud 4. Algo así:
byte cero[4] = { 0xA6, 0xD4, 0xAC, 0xF8 }; // 0: LLAVERO 1
byte uno[4] = { 0xE9, 0x48, 0xCC, 0xE3 }; // 1: TARJETA 1
byte dos[4] = { 0x46, 0x6F, 0xA5, 0xF8 }; //2: LLAVERO 2
byte tres[4] = { 0xC2, 0x9D, 0xFC, 0x33 }; //3: TARJETA 2
byte matriz[4][4] = {
cero[4]},
uno[4],
dos[4],
tres[4]
} ;
Al mandarlo al monitor serie me salen todo ceros.
Si alguien me pudiera ayudar, lo agradecería.
_jose
June 27, 2019, 5:46pm
2
en un array los indices comienzan por 0 ,un array de cuatro elementos se numera del 0 al 3 por lo que la posicion [4] no existe,prueba sin el indice y las llaves creo que no estan bien.No se si asi te funcionara:
byte matriz[4][4] = {
{cero[]},
{uno[]},
{dos[]},
{tres[]}
} ;
// si no funciona prueba asi
byte matriz[4][4] = {
{ 0xA6, 0xD4, 0xAC, 0xF8 },
{ 0xE9, 0x48, 0xCC, 0xE3 },
{ 0x46, 0x6F, 0xA5, 0xF8 },
{ 0xC2, 0x9D, 0xFC, 0x33 }
} ;
No se puede crear una matriz de matrices. Pero si se puede usar punteros a matrices, asi:
void setup(){
Serial.begin(9600);
byte cero[] = { 0xA6, 0xD4, 0xAC, 0xF8 };
byte uno[] = { 0xE9, 0x48, 0xCC, 0xE3 };
byte dos[] = { 0x46, 0x6F, 0xA5, 0xF8 };
byte tres[] = { 0xC2, 0x9D, 0xFC, 0x33 };
byte* matriz[4] = {cero, uno, dos, tres}; //Puntero de matrices.
for (byte i=0; i<4; i++){
for (byte j=0; j<4; j++){
Serial.print(matriz[i][j], HEX);
Serial.print(", ");
}
Serial.println();
}
}
void loop() {
//Nada
}