Fonctions en Arduino
- 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 :
- 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 :
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 |