Créer une bibliothèque de fonctions

Modification d'un programme mono-fichier

Ajout d'un fichier « header »

Création du fichier

Déplacement des constantes

Inclusion du « header » dans le programme principal

Ajout de fonctions

Déplacement de la premier fonction

Création du fichier Led.ino

Mise à jour du fichier d'entête

Deuxième fonction

Test

On se propose de montrer comment on peut passer d'un programme écrit dans un seul fichier à un projet comportant plusieurs fichiers. L'intérêt de cette transformation est une meilleur réutilisabilité des fonctions. Voici le programme de départ :

1
#define PORT_LED 4
2
#define DUREE_ALLUME 400
3
#define DUREE_ETEINT 600
4
void setup() {
5
pinMode(PORT_LED,OUTPUT)
6
}
7
8
void loop() {
9
  digitalWrite(PORT_LED, HIGH);
10
  delay(DUREE_ALLUME);
11
  digitalWrite(PORT_LED, LOW);
12
  delay(DUREE_ETEINT);
13
}
14

Un header, ou entête, est un fichier d'extension .h qu'on va inclure dans le programme principal à l'aide de la directive #include.

Un header peut avoir plusieurs rôles :

  • rassembler les constantes permettant le paramétrage du programme principal ou d'une fonction,

  • lister les déclarations de fonctions, qui seront incluses dans le programme principal et, à ce titre, constituer le premier élément d'une b « bibliothèque » de fonctions

On commence par effectuer un couper/coller des constantes du programme principal vers le fichier d'entête.

Il faut maintenant indiquer au programme principal le fichier header à inclure.

Nous allons ensuite créer deux fonctions pour allumer et éteindre la diode

Comme précédemment pour les constantes, nous déplaçons la fonction du programme principal vers un nouveau fichier Led.ino que nous allons créer dans la foulée.

Ce fichier contiendra la définition des fonctions de commande de la diode.

Il ne faut pas oublier de déclarer les fonctions dans le fichier Led.h

Nous allons procéder de la même manière pour la seconde fonction qui permet d'éteindre la diode.

Il ne reste qu'à lancer la simulation pour vérifier le bon fonctionnement.