Problema Memoria?

@federik87
c'e' anche un grosso errore. sizeof() da solo ti dice solo quanti byte occupa quella variabile/vettore
NON quanti elementi ci sono nel vettore.
sizeof() la puoi usare di "brutto" su array di char o di byte. Su array di int ritorna il doppio di quello che ti aspetti perchè su Arduino 1 int = 2 byte
Quindi:

for(int x = 0; x < sizeof(cards)/2; x++){

dividi per due oppure

for(int x = 0; x < sizeof(cards)/sizeof(cards[0]); x++){