Création de bibliothèque arduino

bon effectivement il ya certaine réponse que je pense avoir comprise je vais essayer pour ce qui liron de l'expliquer au fur et a mesure
ici je reprent l'exemple Test.h que j'ai traduit avec googletraduction (bin vu mon niveau d'anlais j'ai pas mieu).

/*
  Test.h - Bibliothèque de tests pour le câblage - Description
   Copyright (c) 2006 John Doe. Tous droits réservés.
*/

// Permet de s'assurer que cette description de bibliothèque est inclus qu'une seule fois
#ifndef Test_h
#define Test_h

// Inclut les types et les constantes de base API
#include "WConstants.h"

//Description de l'interface / bibliothèque
/*Une classe est simplement un ensemble de fonctions et de variables qui sont tous conservés dans un même lieu. Ces fonctions et les variables peuvent être publics , ce qui signifie qu'ils peuvent être consultés par les personnes qui utilisent votre bibliothèque ou privé , ce qui signifie qu'ils ne peuvent être accessibles à partir de la classe elle-même. Chaque classe a une fonction spéciale appelée constructeur , qui est utilisé pour créer une instance de la classe. Le constructeur a le même nom que la classe, et aucun type de retour.*/
class Test
{
  // partie "public" accesible  par la bibliothéque et a l'exterieur de la bibliothéque
  public:
    Test(int);
    void doSomething(void);

  // partie "privé" accesible que par la bibliothéque
  private:
    int value;
    void doSomethingSecret(void);
};

#endif

Pour le .cpp

*
   Test.h - Bibliothèque de tests pour le câblage - la mise en œuvre
   Copyright (c) 2006 John Doe. Tous droits réservés.
*/

// Inclut câblage de base API
#include "WProgram.h"

// Inclut fichier de description de cette bibliothèque
#include "Test.h"

//inclure des fichiers de description d'autres bibliothèques utilisées (le cas échéant)
#include "HardwareSerial.h"

// Constructeur 
//"::"  Fonction qui gère la création et la mise en place d'instances

Test::Test(int givenValue)
{
  // Initialiser les variables de cette instance
  value = givenValue;

  // Faire tout ce qui est nécessaire pour initialiser la bibliothèque
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

//  Méthodes publiques 
// Fonctions disponibles dans les esquisses , cette bibliothèque, et d'autres bibliothèques

void Test::doSomething(void)
{
  // Eventhough cette fonction est public, il peut accéder et modifier les variables privées de cette bibliothèque
  Serial.print("value is ");
  Serial.println(value);

  // On peut également appeler des fonctions privées de cette bibliothèque
  doSomethingSecret();
}

//Méthodes privée 
// Fonctions uniquement disponible pour les autres fonctions de cette bibliothèque

void Test::doSomethingSecret(void)
{
  digitalWrite(13, HIGH);
  delay(200);
  digitalWrite(13, LOW);
  delay(200);
}

donc ça repond a certaine de mes question !

en voici d'autre :
dans ma bibliothéque mais fonction sont simple et ne necesite pas de metre certaine pin en fonction output par exemple

je veux juste pouvoir apeler ma fonction qui serai dans une biblioteque comme on utilise la fonction sin(), faut til procede differament ou est ce que j'aurai a modifier mon code actuel ex:

voici ma fonction que je cherche a metre dans une bibliothéque

___________________________________________________________ fonction qui determine si une anée est bisextile ______________________________________*/
/*boolean bisex(int annee){
  //ce qui suit permet de determiner si l'annéee et bisextile renvoi vrai ou faux
  int r1;
  if(annee%400==0){
    r1=1;
  }
  else{
    r1=0;
  };
  int r2;
  if(annee%100==0){
    r2=1;
  }
  else{
    r2=0;
  };
  int r3;
  if(annee%4==0){
    r3=1;
  }
  else{
    r3=0;
  };
  int reponse;
  if(r1-r2+r3==1){ 
    reponse=true;
  }
  else{
    reponse=false;
  };

  return reponse;
}*/

voici comment je l'utilise actuelement quand elle est dans mon sketch:

  if (MOIS==2&&bisex(ANNEE)==true){ 
    if (JOUR<1){
      JOUR=29;
    };
    if (JOUR>29){
      JOUR=1;
    }; 
  };
  ////////////////////////////////////////////////////////////////////////////
  if (MOIS==2&&bisex(ANNEE)==false){ 
    if (JOUR<1){
      JOUR=28;
    };
    if (JOUR>28){
      JOUR=1;
    };
  };

a quoi va resembler mon apelle de fonction depuis ma bibliotheque?

a truc comme ça :

un_truc.bisex(ANNEE)

je sait que ça vous parrait simple mais je nage!