Catégories
Arduino

Arduino #27: Comment crée une nouvelle bibliothèque en 3 étapes ?

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

2 réponses sur « Arduino #27: Comment crée une nouvelle bibliothèque en 3 étapes ? »

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

Laisser un commentaire