Aller au contenu principal
arduinoLes fonctions

Les fonctions

Objectifs du Chapitre

Comprendre ce qu’est une fonction.

Déclarer et appeler une fonction en Arduino.

Utiliser des fonctions avec ou sans paramètres.

Structurer son code avec des fonctions réutilisables.

Où on va

Un programme Arduino qui grossit devient vite illisible, parce que tout s'entasse dans loop(). Une fonction donne un nom à un morceau de traitement : allumerFeuRouge() se lit, digitalWrite(9, HIGH); digitalWrite(10, LOW); delay(3000); demande à être déchiffré. C'est la différence entre un programme qu'on relit et un programme qu'on réécrit.

Qu’est-ce qu’une fonction ?

Une fonction est un bloc de code qui effectue une tâche précise. Elle permet :

  • de réutiliser du code,
  • d’organiser le programme de manière claire,
  • d’éviter la répétition.

Dans un programme Arduino, il existe deux fonctions principales par défaut :

Arduino
void setup() {
// Code exécuté une fois au démarrage
}
void loop() {
// Code exécuté en boucle
}

Mais vous pouvez créer vos propres fonctions.

Définir une fonction personnalisée

Structure de base

Arduino
type_retour nomFonction(parametres) {
// Instructions à exécuter
return valeur; // Facultatif si type ≠ void
}

Exemple simple

Arduino
int addition(int a, int b) {
int resultat = a + b;
return resultat;
}

Cette fonction renvoie la somme de deux entiers.

Appeler une fonction

Une fonction s’utilise en l’appelant avec les bons arguments (valeurs) :

Arduino
int somme = addition(5, 10); // somme vaut 15

Fonction sans valeur de retour (void)

Une fonction qui n’a pas besoin de renvoyer un résultat utilise le type void.

Exemple

Arduino
void allumerLED() {
digitalWrite(LED_BUILTIN, HIGH);
}

Pour exécuter cette fonction :

Arduino
allumerLED();

Fonction avec paramètres

Les paramètres permettent de rendre une fonction plus flexible.

Exemple

Arduino
void allumerLED(int delai) {
digitalWrite(LED_BUILTIN, HIGH);
delay(delai);
digitalWrite(LED_BUILTIN, LOW);
}

Et pour l’utiliser :

Arduino
allumerLED(1000); // La LED reste allumée pendant 1 seconde

Exemple pratique : calcul de moyenne

Définir la fonction

Arduino
float calculerMoyenne(int valeur1, int valeur2, int valeur3) {
float moyenne = (valeur1 + valeur2 + valeur3) / 3.0;
return moyenne;
}

Utiliser la fonction avec des capteurs

Arduino
int lecture1 = analogRead(A0);
int lecture2 = analogRead(A1);
int lecture3 = analogRead(A2);
float moyenne = calculerMoyenne(lecture1, lecture2, lecture3);
Serial.println(moyenne);

Organiser le code avec plusieurs fonctions

Exemple : clignoter une LED

Arduino
void clignoterLED(int delai) {
allumerLED();
delay(delai);
eteindreLED();
delay(delai);
}
void allumerLED() {
digitalWrite(LED_BUILTIN, HIGH);
}
void eteindreLED() {
digitalWrite(LED_BUILTIN, LOW);
}

Dans loop() :

Arduino
void loop() {
clignoterLED(1000); // LED clignote toutes les secondes
}

Pourquoi utiliser des fonctions ?

AvantageExplication
RéutilisationNe pas répéter plusieurs fois le même code
LisibilitéCode plus clair et facile à comprendre
MaintenanceModifier une seule fois une fonction
Débogage simplifiéTester une fonction indépendamment

Résumé des notions clés

ÉlémentDescription
type nomFonction()Déclaration d’une fonction
voidFonction sans valeur de retour
return valeur;Renvoie une valeur depuis la fonction
parametresValeurs transmises à la fonction
allumerLED();Appel d'une fonction