
Barra de Leds. Arrays i bucles For
Volem controlar l’encesa intermitent dels 10 LEDs d’una barra de LEDs. El programa surt llarguíssim i molt repetitiu. Cal racionalitzar el codi!
Comencem per la declaració dels pins utilitzats:
Si utilitzem un Array podem transformar les 10 línies de codi necessàries per declarar els pins en una sola:
Un Array és un conjunt de variables que s’emmagatzemen en posicions successives. La seva declaració ha de tenir la forma:
tipus de dades nom Array [núm d’elements] = {valor1, valor2, …, valor n} ;
* el nombre d’elements podem especificar-lo o no, però els claudàtors s’han de mantenir.
Configuració dels pins digitals:
Quan utilitzem els valors al programa ens haurem de referir a la seva posició dins l’array.
Compte! El primer element ocupa la posició 0. En el nostre cas, array amb 10 elements, l’últim ocupa la posició 9.
Així, quan configurem els pins digitals amb la instrucció pinMode (pin,OUTPUT); ho haurem de fer així:
Aquest codi és molt repetitiu, estem utilitzant la mateixa instrucció 10 vegades.
Si utilitzem un bucle For, podem repetir una o un seguit d’instruccions tantes vegades com vulguem. La seva sintaxi:
paràmetres del for (entre ( ) i separats per ;):
inicialització: cal una variable comptador (x) el valor inicial de la qual ha de ser 0.
condició (test): el bucle es repetirà mentre es compleixi la condició especificada. Si volem repetir les instruccions 10 vegades, la condició ha de ser: mentre la variable x < 10.
incrementador: cada cop que s’avaluï la condició i s’executi el codi, la variable comptador ha d’incrementar el seu valor. En el nostre cas, el nou valor de x serà l’antic valor de x + 1 o el que és el mateix, x++
* Les instruccions a repetir, com sempre, entre { }
Així, el codi anterior, que necessita 10 línies per configurar els pins, podem simplificar-lo i configurar tots a l’hora:
Definició dels comportaments dels leds:
Per exemple per fer-los intermitents tots a lhora utilitzant bucles for:
Una mica maquejat, el programa complet:
Un altre exemple d’ús d’Arrays i bucles For:
El projecte Final Countdown de l’alumne Tecno-Lògic D Chamizo amb visualitzador de 7 segments:
https://gist.github.com/a-r-d/2857293