non credo che ce ne siano altre,
questa e' la funzione che uso per controllare la mia griglia 8x8.
sostanzialmente l'algoritmo e' questo:
legge i dati della riga 1 accende le colonne interessate, poi accende e spegne la riga 1, poi passa alla riga successiva. lo ripete fino all riga 8 e poi finisce.
i dati li prende da una matrice di char, la funzione fa un giro completo per volta, quindi va chiamata almeno 20 volte al secondo.
i televisori lcd di vecchia generazione utilizzano lo stesso principio.
int V[8]={19,18,17,16,2,3,4,15}; //i pin delle colonne
int H[8]={5,6,7,8,13,12,11,10};//i pin dell righe
char G[8][8]; //la griglia
int fotogramma(char G[8][8]){
int i,j;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(G[i][j])
pinMode(H[j],OUTPUT);
else
pinMode(H[j],INPUT);
}
digitalWrite(V[i],HIGH);
delay(1);
digitalWrite(V[i],LOW);
}
}
void setup(){
}
void loop(){
G[5][3] = 1;
for(;;)
fotogramma(G);
}