Go Down

Topic: CUBO 3X3X3 info e consigli (Read 2 times) previous topic - next topic

superlol

il bello è che potresti fare un array nell'array in cui sono contenuti in sequenza i pin da accendere :P

ad esempio
Code: [Select]
byte pins[][] = {
  {20, 30, 40},
  {20, 30, 50},
  {10, 20, 30, 50},
  {10, 20, 30, 40, 50}
  }

è un array che contiene altri array. viene chiamato multidimensionale (in questo caso bidimensionale)
ho scritto dei pin alla cavolo non so nemmeno se esistono devo ammette ma ora ti faccio capire il trucchetto :P
riprendo la macro scritta da tuxduino e la trasformo in funzione, la differenza è che la funzione è calcolata durante lo svolgimento del programma mentre la macro durante la compilazione (o almeno io la sapevo così :P )
Code: [Select]
void array_length(byte a) {
  return (sizeof(a)/sizeof(a[0]));
  }

ok fatto questo puoi sapere ogni volta quanti valori hai in ogni array

ora pensiamo al ciclo ;)

quando vuoi richiamare il valore di un array multidimensionale hai necessità di 2 indici. gli indici sono dei numeri che vanno a "selezionare" il valore, vedile come le righe di un programma.
però noi abbiamo delle righe e delle colonne quindi abbiamo 2 indici per poter leggere 1 solo valore ;) spero tu mi segua
ricorda che gli indici partono da 0
Code: [Select]

for (byte i = 0; i < array_lenght(pins); i++) {
  for (byte z = 0; z < array_lenght(pins[i]); z++) {
    Serial.print(pins[i][z]);
    Serial.print(" ");
  }
  Serial.println();
}

se aprirai il monitor seriale con questo codice nel setup (o stamperà all'infinito) vedrai che dovrebbe riportarti il tuo array

unico dubbio che mi è sorto:
noi calcoliamo il numero di elementi dell'array come un rapporto tra grandezza dell'array e grandezza del primo valore, ma in un array dimensionale i cui "sotto-array" sono di grandezza variabile è attendibile come sistema? quindi ogni sotto-array è grande (in questo caso) un byte o ogni suo valore all'interno è un byte?
perchè in tal caso sballerebbe la lunghezza sull'intero array...
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Go Up