Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
wiki:tutoriels:arduino:manipuler-un-tableau-en-c [2024/06/06 09:21] damien.muti [Enregistrement de données et calcul de moyenne] |
wiki:tutoriels:arduino:manipuler-un-tableau-en-c [2024/06/06 09:34] (Version actuelle) damien.muti [Version 3] |
||
|---|---|---|---|
| Ligne 171: | Ligne 171: | ||
| ===== Enregistrement de données et calcul de moyenne ===== | ===== Enregistrement de données et calcul de moyenne ===== | ||
| - | la mesure d'une valeur issue d'un capteur | + | La mesure d'une valeur issue d'un capteur |
| - | Lorsqu' | + | Lorsqu' |
| + | |||
| + | ==== Version 1 ==== | ||
| < | < | ||
| Ligne 219: | Ligne 221: | ||
| </ | </ | ||
| + | |||
| + | ==== Version 2 ==== | ||
| + | |||
| + | < | ||
| + | const int N_moy = 10; // Taille du tableau | ||
| + | int valeurs[N_moy]; | ||
| + | |||
| + | void setup() { | ||
| + | Serial.begin(9600); | ||
| + | for (int i = 0; i < N_moy; i++) { | ||
| + | valeurs[i] = 0; // Initialisation du tableau à 0 | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | int valeur_lue = lireCapteur(); | ||
| + | mettreAJourTableau(valeur_lue, | ||
| + | float moyenne = calculerMoyenne(valeurs); | ||
| + | Serial.print(" | ||
| + | Serial.println(moyenne); | ||
| + | | ||
| + | delay(1000); | ||
| + | } | ||
| + | |||
| + | int lireCapteur() { | ||
| + | // Remplacez ceci par le code pour lire votre capteur digital | ||
| + | // Exemple : int valeur = digitalRead(pinDuCapteur); | ||
| + | int valeur = random(0, 1023); | ||
| + | return valeur; | ||
| + | } | ||
| + | |||
| + | void mettreAJourTableau(int nouvelleValeur, | ||
| + | // Décaler les valeurs vers la gauche | ||
| + | for (int i = 0; i < N_moy - 1; i++) { | ||
| + | tableau[i] = tableau[i + 1]; | ||
| + | } | ||
| + | // Ajouter la nouvelle valeur à la fin du tableau | ||
| + | tableau[N_moy - 1] = nouvelleValeur; | ||
| + | } | ||
| + | |||
| + | float calculerMoyenne(int tableau[]) { | ||
| + | int somme = 0; | ||
| + | for (int i = 0; i < N_moy; i++) { | ||
| + | somme += tableau[i]; | ||
| + | } | ||
| + | return (float)somme / N_moy; | ||
| + | } | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Version 3 ==== | ||
| + | |||
| + | < | ||
| + | const int N_moy = 10; // Taille du tableau | ||
| + | int valeurs[N_moy]; | ||
| + | |||
| + | void setup() { | ||
| + | Serial.begin(9600); | ||
| + | for (int i = 0; i < N_moy; i++) { | ||
| + | valeurs[i] = 0; // Initialisation du tableau à 0 | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | int valeur_lue = lireCapteur(); | ||
| + | mettreAJourTableau(valeur_lue, | ||
| + | float moyenne = calculerMoyenne(valeurs); | ||
| + | Serial.print(" | ||
| + | Serial.println(moyenne); | ||
| + | | ||
| + | delay(1000); | ||
| + | } | ||
| + | |||
| + | int lireCapteur() { | ||
| + | // Remplacez ceci par le code pour lire votre capteur digital | ||
| + | // Exemple : int valeur = digitalRead(pinDuCapteur); | ||
| + | int valeur = random(0, 1023); | ||
| + | return valeur; | ||
| + | } | ||
| + | |||
| + | void mettreAJourTableau(int nouvelleValeur, | ||
| + | // Décaler les valeurs vers la gauche | ||
| + | for (int i = 0; i < N_moy - 1; i++) { | ||
| + | tableau[i] = tableau[i + 1]; | ||
| + | } | ||
| + | // Ajouter la nouvelle valeur à la fin du tableau | ||
| + | tableau[N_moy - 1] = nouvelleValeur; | ||
| + | } | ||
| + | |||
| + | float calculerMoyenne(int *tableau) { | ||
| + | int somme = 0; | ||
| + | for (int i = 0; i < N_moy; i++) { | ||
| + | somme += tableau[i]; | ||
| + | } | ||
| + | return (float)somme / N_moy; | ||
| + | } | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Détails Techniques ==== | ||
| + | |||
| + | **Tableaux et Pointeurs en C/C++** : Lorsque vous passez un tableau à une fonction, vous passez en fait un pointeur vers le premier élément du tableau. Ainsi, int tableau[] et int *tableau sont équivalents dans le contexte des paramètres de fonction. Les deux notations permettent à la fonction de modifier les éléments du tableau original. | ||
| + | |||
| + | |||
| + | **Accès aux éléments** : Vous pouvez accéder aux éléments du tableau en utilisant l' | ||
| + | |||
| + | |||
| + | En résumé, vous pouvez utiliser l'une ou l' | ||