Utilisation des tableaux: exemple arduino smooting

Utilisation des tableaux: exemple arduino smoothing

Dans cet exemple arduino nous allons nous intéresser à ce type de variable particulier qu’est le tableau (array en anglais). Vous verrez rapidement que grâce aux tableaux (qui contiennent en réalité plusieurs variables) vous pourrez rendre la programmation de vos boucles bien plus performante.

Qu’est ce qu’un tableau?

Comme je l’ai dis dans l’introduction, un tableau est en réalité une variables contenant plusieurs variables. Prenons un exemple concret. Je fais de la domotique et j’ai quatre capteurs qui relèvent la température de mon salon, salle à manger, cuisine et chambre. Sans tableaux, si je souhaite lire ces températures, je déclarerai  quatre variables (probablement temperatureSalontemperatureSalleAMangertemperatureCuisinetemperatureChambre) que je viendrez lire les une à la suite des autre.

Avec un tableau, il suffit de déclarer une seule variable avec, entre deux crochets, le nombre d’éléments que l’on souhaite stocker. Les températures étant de format integer, nous déclarerons donc:

int temperature[4];

Nous venons donc de déclarer un tableau qui sera composé dans quatre integer, et  cela dans une seule variable!

Dans quels cas utiliser un tableau?

Manier un tableau sous un arduino n’a rien de réellement compliqué. Maintenant que vous avez déclaré votre tableau, il faut le remplir, nous allons donc faire cela case par case (on parle d’index). Un tableau de quatre valeurs commence à l’index 0 et fini à l’index 3!

Dans le programme nous allons donc taper:

Dans le programme, il ne nous reste plus qu’à faire une boucle (FOR par exemple) qui va de 0 à 3 pour afficher toutes nos températures (petit rappel sur les boucles FOR à ce lien).


Voila comment utiliser un tableau, si vous n’êtes pas convaincu de l’intérêt alors imaginez vous devoir afficher 100 températures…

Les tableaux et l’exemple arduino Smoothing.

Dans Arduino IDE 1.6.7, l’exemple smoothing se trouve dans Fichier / Exemples / 03.Analog / Smoothing.

chemin Smoothing

Et voici le programme en question:

Ligne 1 à 21: On commence comme d’habitude par un gros pavé de commentaires.

Ligne 28: On déclare dans un integer constant nommé numReading  la taille du tableau. Ici 10.

Ligne 30: On déclare notre tableau d’intéger reading d’un longueur égale à numReading (donc 10).

Ligne 31: readIndex nous servira à evoluer de 0 à 9 pour lire chaque valeur du tableau.

Ligne 32: total contiendra la somme de toutes les valeurs du tableau.

Ligne 33: average sera la valeur moyenne du tableau (total / numReading).

Ligne 37 à 44: Fonction setup qui initialise une communication serie à 9600 et initialise la tableau (on y revient tout de suite…)

Ligne 40 à 43: Essayez de comprendre par vous même ce passage (même si les commentaires devraient vous mettre la puce à l’oreille). Cette boucle FOR sert à initialiser les valeurs du tableau à 0.

Ligne 46 à 67: Fonction principale loop().

Ligne 48: On retire de total la valeur actuellement indexée du tableau (afin de faire de la place pour la nouvelle).

Ligne 50: On vient stocker la valeur du potentiomètre dans l’index en cours du tableau.

Ligne 52: On ajout la valeur au total.

Ligne 54: On augmente l’index de 1 afin de passage à la « case suivante » du tableau.

Ligne 57 à 60: Si l’index dépace 9, alors on le remet à 0. Rappelez vous que le tableau évolue de reading[0] à reading[9].

Ligne 63: On calcul la valeur moyenne du tableau reading[].

Ligne 65: On envoit la moyenne au moniteur série.


Liens internes:

Tutoriel sur les boucles FOR.

IPA04 – les tableaux et les boucles.

Liens externes:

Article wikipedia.

Les tableaux, site officiel arduino.

About the Author: maxpeigne