Découvrez notre Chaîne YouTube "Ingénierie et Projets"
Découvrez notre Chaîne Secondaire "Information Neuronale et l'Ingénierie du Cerveau"

Objectifs

  1. Savoir les 3 étapes de création d’une nouvelle bibliothèque
  2. Savoir les fichiers contenant une bibliothèque
  3. Savoir intégrer une nouvelle bibliothèque
  4. Savoir tester la bibliothèque
  5. Exemple de calcul de la valeur moyenne, maximale et minimale d’un buffer
  6. La différence entre “MyLib.h” & <MyLib.h> ?

A quoi sert une bibliothèque ?

  1. Regrouper un ensemble des fonctions redondantes dans ses projets
  2. Avoir un code modulaire et scalable (possibilité des mises à jour)
  3. Réduire le temps de développement & possibilité à faire des erreurs
  4. Gestions des modules (Moteur PAP, SPI, Capteurs, I2C, Filtrage,…)
  5. Etc.

étape 1 : développement du code de la nouvelle bibliothèque

  • – maxf():       Calcul de la valeur maximale
  • – minf():       Calcul de la valeur minimale
  • – meanf():      Calcul de la valeur moyenne
  • – MaxMinMean(): La fonction globale

Calcul de la valeur maximale

float maxf(int *Buffer, int taille)

{

  int maxVal=Buffer[0];

  for(int i=1;i<taille; i++)

    if(Buffer[i]>maxVal)

      maxVal=Buffer[i];




  return (float)maxVal;

}

Calcul de la valeur minimale

float minf(int *Buffer, int taille)

{

  int minVal=Buffer[0];

  for(int i=1;i<taille; i++)

    if(Buffer[i]<=minVal)

      minVal=Buffer[i];




  return (float)minVal;

}

Calcul de la valeur moyenne

float meanf(int *Buffer, int taille)

{

  float meanVal=0.0;

  for(int i=0;i<taille; i++)

    meanVal+=(float)Buffer[i];




  meanVal=meanVal/taille;

  return meanVal;

}

La fonction globale

float MaxMinMean(int *Buffer, int taille, int Type)

{

  float valRetour=0.0;

  switch (Type)

  {

  case 0:

    valRetour=maxf(Buffer,taille);

    return valRetour;

    break;

  case 1:

    valRetour=minf(Buffer,taille);

    return valRetour;

    break;

  case 2:

    valRetour=meanf(Buffer,taille);

    return valRetour;

    break;

  default:

    return 0.0;

    break;

  }

}

étape 2: Remplissage des fichiers “MyLib.h” et “MyLib.cpp”

  • Fichier MyLib.h:   Les déclarations des fonctions
  • Fichier MyLib.cpp: Les définitions des fonctions

Contenu du fichier “MyLib.h”

// Calcul de la valeur maximale

float maxf(int *Buffer, int taille);




// Calcul de la valeur minimale

float minf(int *Buffer, int taille);




// Calcul de la valeur moyenne

float meanf(int *Buffer, int taille);




// La fonction globale

float MaxMinMean(int *Buffer, int taille, int Type);

étape 3: Test de la nouvelle bibliothèque

#include "MyLib.h"

#define Taille 128







int tab[Taille], i;

float maxVal, minVal, meanVal;

int ValInst;




void setup()

{

  Serial.begin(115200);

}




void loop()

{

  // Lecture de la valeur instantanée

  ValInst=analogRead(A0);




  // Remplissage du buffer

  for(i=0; i<Taille; i++)

    tab[i]=analogRead(A0);




  // Récupération des données du signal

  maxVal=MaxMinMean(tab, Taille,0);

  minVal=MaxMinMean(tab, Taille,1);

  meanVal=MaxMinMean(tab, Taille,2);




  // Affichage dans le port série

  Serial.print(ValInst); Serial.print(",");

  Serial.print(maxVal); Serial.print(",");

  Serial.print(minVal); Serial.print(",");

  Serial.println(meanVal);

}

Télécharger la nouvelle bibliothèque myLib.h

Click to rate this post!
[Total: 0 Average: 0]
Catégories : Arduino

2 commentaires

Olivier BREMOND · 2022-12-22 à 4:35 PM

Bonjour les détails des fonctions ne sont pas visible, est ce normal?

“pastacode lang= »c » manual= »float%20minf(int%20*Buffer%2C%20int%20taille)%0A%0A%7B%0A%0A%C2%A0%20int%20minVal%3DBuffer%5B0%5D%3B%0A%0A%C2%A0%20for(int%20i%3D1%3Bi%3Ctaille%3B%20i%2B%2B)%0A%0A%C2%A0%C2%A0%C2%A0%20if(Buffer%5Bi%5D%3C%3DminVal)%0A%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20minVal%3DBuffer%5Bi%5D%3B%0A%0A%0A%0A%0A%C2%A0%20return%20(float)minVal%3B%0A%0A%7D » message= » » highlight= » » provider= »manual »/] ”

Cordialement

    ElecM · 2022-12-28 à 10:32 AM

    Merci pour ton commentaire, c’est bon, j’ai réglé le soucis d’affichage 🙂

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Anti-Robot *

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.