logo

Fonctions en Arduino

Objectifs Pédagogiques
  • 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.

Qu’est-ce qu’une fonction ?

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

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

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

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

Exemple simple

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) :

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

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

Pour exécuter cette fonction :

allumerLED();

Fonction avec paramètres

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

Exemple

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

Et pour l’utiliser :

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

Exemple pratique : calcul de moyenne

Définir la fonction

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

Utiliser la fonction avec des capteurs

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

void clignoterLED(int delai) {
  allumerLED();
  delay(delai);
  eteindreLED();
  delay(delai);
}

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

void eteindreLED() {
  digitalWrite(LED_BUILTIN, LOW);
}

Dans loop() :

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

Pourquoi utiliser des fonctions ?

Avantage Explication
Réutilisation Ne pas répéter plusieurs fois le même code
Lisibilité Code plus clair et facile à comprendre
Maintenance Modifier une seule fois une fonction
Débogage simplifié Tester une fonction indépendamment

Résumé des notions clés

Élément Description
type nomFonction() Déclaration d’une fonction
void Fonction sans valeur de retour
return valeur; Renvoie une valeur depuis la fonction
parametres Valeurs transmises à la fonction
allumerLED(); Appel d'une fonction