La fonction loop() sur Arduino : son principe, son fonctionnement et comment l'utiliser

Comme la fonction setup() dans un programme Arduino, la fonction loop() est la deuxième fonction fondamentale dans la structure d'un programme Arduino. Cette fonction constitue la partie et la structure de base de tous les sketches développés, quel que soit la référence de la carte utilisée;  Arduino Uno, Arduino Nano, Arduino Zero, ... etc. Ainsi, tout programme écrit sous Arduino doit comporter, au minimum, ces deux fonctions essentielles. Ce qui nous donne la structure suivante, même si ces deux fonctions restent vides :

void setup() {
  // placez ici votre code d'initialisation, à exécuter une seule fois.
}

void loop() {
  // placez votre code principal ici, pour qu'il s'exécute en boucle indéfiniment.
}

Ces deux fonctions essentielles pour un code Arduino sont indissociables. Si l’une ou l'autre est manquante, le code ne pourra pas être compilé et une erreur sera signalée dans la fenêtre "sortie" de l'éditeur Arduino IDE. Lorsque vous lancez une nouvelle instance de cet éditeur, c'est automatiquement qu'un programme vide est créé, avec par défaut les deux fonctions setup() et loop(); la capture ci-dessous nous présente cela :

Un nouveau sketch sous Arduino IDE

Pourquoi la fonction loop() ?

Contrairement à la fonction setup(), qui ne s'exécute qu'une seule fois au démarrage de la carte, la fonction loop() est exécutée de manière répétitive infinie pendant toute la durée de fonctionnement de notre carte, et plus précisément pendant toute la durée de la mise sous tension du microcontrôleur de la carte Arduino. Pour avancer dans votre formation et avec vos codes, la maîtrise de fonction loop() devient indispensable pour créer et développer non seulement vos premiers programmes, si vous débuter dans la robotique, mais aussi des programmes efficaces, réactifs et fiables.

Ainsi, lorsque le microcontrôleur arrive à l'exécution de la dernière instruction de cette fonction, ce dernier revient automatiquement au début de la fonction et ainsi de suite. Il est donc à noter qu'il n'est pas donc nécessaire d'utiliser une boucle itérative infinie telle que la boucle définie par l'instruction while(true).

Syntaxe de la fonction loop()

Identiquement à la fonction setup(), la syntaxe de cette fonction s'écrit aussi de la même façon comme suit :

void loop() {
  // placez votre code principal ici, pour qu'il s'exécute en boucle indéfiniment.
}

Composée de 3 composantes essentielles, cette fonction est décomposée en :

La fonction void

Le mot-clé void en C++ est utilisé pour déclarer une fonction qui ne renvoie aucune valeur à l’issue de son exécution. Contrairement à une fonction qui retour une valeur de type entier (int) ou de type décimal (float), ou tout autre type, une fonction déclarée sous le mot-clé void a pour objectif d’exécuter une série d’instructions sans retourner aucun résultat au programme appelant. Ainsi, la fonction loop() d’un programme Arduino exécute les instructions une par une en boucle indéfiniment, sans retourner aucune valeur.

Le nom de la fonction

Le nom de cette fonction, appelé loop(), ne peut être différent de celui défini par Arduino. Ce mot-clé est donc réservé par le framework Arduino et il ne doit jamais être écrit autrement. Si vous l'oubliez ou vous le modifiez, la compilation du code écrit échoue et un message d'erreur vous sera notifié dans la fenêtre appropriée "sortie" (appelé aussi "Output" si vous installez la version anglaise de l'éditeur Arduino IDE).

Les parenthèses () et les accolades {}

Comme toute fonction void dans la langue C++, il est obligatoire d'ajouter les parenthèses pour déclarer les paramètres de la fonction. Sauf d'après le framework Arduino, la fonction loop() ne prend pas de paramètres et  ne transmet aucun. Donc, ces deux parenthèses restent toujours vides.

Et pour définir le début et la fin de cette fonction, comme toute autre fonction écrite en C++, nous devons ajouter deux accolades pour déclarer le début et la fin de cette fonction.

 


📝 La dernière modification de cette page a été faite le 18 August 2026 par Electro & Robot