Arduino - Shield Multi-Fonctions
Ce tutoriel vous explique comment utiliser Arduino avec le Shield Multi-Fonctions. En détail, nous allons apprendre :
- Comment connecter le Shield Multi-Fonctions à Arduino.
- Comment programmer Arduino pour afficher des nombres et du texte sur l'afficheur 7 segments à 4 chiffres.
- Comment programmer Arduino pour détecter les appuis sur les boutons.
- Comment programmer Arduino pour contrôler les LEDs (allumer, éteindre, clignoter).
- Comment programmer Arduino pour faire sonner le buzzer.
- Comment programmer Arduino pour lire la valeur du potentiomètre.
- Comment programmer Arduino pour lire la température depuis le capteur LM35.

Regardez ce tutoriel vidéo étape par étape démontrant tous les exemples du Shield Multi-Fonctions. Notez que la vidéo montre l'Arduino Uno R4, mais cela fonctionne de manière identique pour l'Arduino Uno R3 :
Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables STEM V3 (Arduino inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Shield Multi-Fonctions
Le Shield Multi-Fonctions est un shield d'apprentissage et de prototypage tout-en-un conçu pour les cartes Arduino Uno et Mega. Il intègre plusieurs composants courants sur une seule carte, éliminant ainsi le besoin de câblage complexe.
Le shield comprend les composants suivants :
- Afficheur 7 Segments à 4 Chiffres : Piloté par un registre à décalage 74HC595. Affiche des chiffres, du texte (A–Z) et des caractères spéciaux comme le symbole degré (°).
- 3 Boutons Poussoirs (S1, S2, S3) : Actifs BAS avec résistances de tirage internes. Utiles pour la saisie utilisateur et la navigation dans les menus.
- 4 LEDs (D1, D2, D3, D4) : Actives BAS. Peuvent être allumées, éteintes, basculées ou faire clignoter indépendamment ou toutes ensemble.
- Buzzer : Actif BAS. Peut produire des bips de durée configurable avec délai optionnel.
- Potentiomètre : Connecté à la broche analogique A0. Lit une valeur de 0 à 1023 (ou pourcentage 0–100%).
- Capteur de Température LM35 : Connecté à la broche analogique A4. Lit la température en Celsius. Nécessite de retirer le cavalier J1.
Pour les cartes basées sur le facteur de forme Arduino Uno (comme l'Arduino Uno ou Mega), le Shield Multi-Fonctions se monte directement sur la carte, ce qui en fait une solution vraiment plug-and-play — aucune breadboard ni fils de liaison nécessaires. Pour les cartes au facteur de forme Uno mais avec des noms de broches différents (comme le DIYables ESP32-S3 Uno), la bibliothèque prend en charge la correspondance personnalisée des broches.
Correspondance des Broches
| Function | Arduino Pin | Function | Arduino Pin |
|---|---|---|---|
| LED D1 | 13 | Button S1 | A1 |
| LED D2 | 12 | Button S2 | A2 |
| LED D3 | 11 | Button S3 | A3 |
| LED D4 | 10 | Potentiometer | A0 |
| Buzzer | 3 | LM35 Temp Sensor | A4 |
| Display LATCH | 4 | ||
| Display CLOCK | 7 | ||
| Display DATA | 8 |

Schéma de Câblage
Connecter l'Arduino au Shield Multi-Fonctions est simple. Il suffit d'empiler le Shield Multi-Fonctions sur l'Arduino, en s'assurant du bon alignement avec les broches de connexion, comme illustré dans l'image ci-dessous.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Installation de la Bibliothèque
- Connectez la carte Arduino à votre ordinateur avec un câble USB.
- Ouvrez l'Arduino IDE, sélectionnez la bonne carte et le bon port.
- Accédez à l'icône Bibliothèques dans la barre de gauche de l'Arduino IDE.
- Recherchez "DIYables_MultiFuncShield", puis trouvez la bibliothèque DIYables_MultiFuncShield par DIYables.
- Cliquez sur le bouton Installer pour installer la dernière version de la bibliothèque.

Remarque : Cette bibliothèque est autonome, sans dépendances externes.
Structure de Base
Chaque sketch utilisant le Shield Multi-Fonctions suit cette structure de base :
MFS.begin() initialise tous les composants (afficheur, boutons, LEDs, buzzer). MFS.loop() met à jour le multiplexage de l'afficheur, l'antirebond des boutons, le clignotement des LEDs et la temporisation du buzzer. Les deux appels sont obligatoires.
Code Arduino - Afficheur 7 Segments
Le code suivant montre comment afficher des entiers, des flottants, du texte et des caractères spéciaux sur l'afficheur 7 segments à 4 chiffres.
Étapes Rapides
- Empilez le Shield Multi-Fonctions sur la carte Arduino.
- Connectez la carte Arduino à votre ordinateur avec un câble USB.
- Ouvrez l'Arduino IDE, sélectionnez la bonne carte et le bon port.
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'Arduino IDE.
- Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino.
L'afficheur passe par 7 modes toutes les 3 secondes : entier, zéros non significatifs, flottant, texte, texte avec point, symbole degré et tirets.
Résumé de l'API Afficheur
| Method | Description | Example | ||
|---|---|---|---|---|
| print(int) | Display integer | MFS.display.print(42) | ||
| print(int, true) | Integer with leading zeros | MFS.display.print(42, true) → 0042 | ||
| print(float, dp) | Float with decimal places | MFS.display.print(3.14, 2) | ||
| print(text) | Display text (A-Z, 0-9, -, _) | MFS.display.print("HELP") | ||
| setNumber(pos, val) | Set single digit (pos 1-4) | MFS.display.setNumber(1, 5) | ||
| setChar(pos, ch) | Set character at position | MFS.display.setChar(2, 'A') | ||
| setChar(pos, SegChars) | Set special character | MFS.display.setChar(3, SegChars | DEGREE) | |
| setDot(pos) | Add dot at position | MFS.display.setDot(2) | ||
| clear() | Clear all digits and dots | MFS.display.clear() | ||
| show() | Commit manual changes | MFS.display.show() |
Remarque : Les méthodes print() appellent show() automatiquement. Utilisez clear(), setNumber(), setChar(), setDot(), puis show() pour un contrôle manuel.
Caractères spéciaux disponibles via SegChars : DASH (-), UNDERSCORE (_), C, E, F, DEGREE (°).
Code Arduino - Boutons
Le code suivant détecte les appuis et relâchements des boutons, affichant les événements dans le Moniteur Série.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'Arduino IDE.
- Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino.
- Ouvrez le Moniteur Série.
- Appuyez et relâchez les boutons S1, S2 et S3 du shield pour voir le résultat.
Résumé de l'API Bouton
| Method | Description | |
|---|---|---|
| isPressed() | Returns true once when button is pressed | |
| isReleased() | Returns true once when button is released | |
| setDebounceTime(ms) | Set debounce time (default | 50 ms) |
Les boutons ont un antirebond intégré et utilisent une logique active BAS avec des résistances de tirage internes. Vous pouvez accéder aux boutons par nom (MFS.button1, MFS.button2, MFS.button3) ou par index (MFS.button(1) à MFS.button(3)).
Code Arduino - LEDs
Le code suivant allume les LEDs une par une, puis les fait toutes clignoter ensemble.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'Arduino IDE.
- Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino.
Les LEDs s'allument séquentiellement avec un délai de 500 ms, puis les 4 LEDs clignotent toutes ensemble.
Résumé de l'API LED
| Method | Description |
|---|---|
| turnON() | Turn LED on |
| turnOFF() | Turn LED off |
| toggle() | Toggle LED state |
| blink(interval) | Blink with equal on/off time |
| blink(onTime, offTime) | Blink with separate on/off times |
| isOn() | Returns true if LED is currently on |
Méthodes de commodité sur MFS :
| Method | Description |
|---|---|
| allLedsOn() | Turn on all 4 LEDs |
| allLedsOff() | Turn off all 4 LEDs |
| allLedsBlink(interval) | Blink all LEDs together |
| allLedsBlink(onTime, offTime) | Blink all with separate on/off times |
Les LEDs sont actives BAS. Accès par nom (MFS.led1 à MFS.led4) ou par index (MFS.led(1) à MFS.led(4)).
Code Arduino - Buzzer
Le code suivant fait sonner le buzzer toutes les 2 secondes.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'Arduino IDE.
- Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino.
Vous entendrez un court bip toutes les 2 secondes.
Résumé de l'API Buzzer
| Method | Description |
|---|---|
| beep(ms) | Beep for the specified duration |
| beep(ms, delayMs) | Wait delayMs, then beep for ms |
| stop() | Stop the buzzer immediately |
| isBeeping() | Returns true if buzzer is currently on |
Code Arduino - Potentiomètre
Le code suivant lit le potentiomètre et affiche la valeur et le pourcentage dans le Moniteur Série.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'Arduino IDE.
- Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino.
- Ouvrez le Moniteur Série.
- Tournez le bouton du potentiomètre et observez le changement de valeur dans le Moniteur Série.
Résumé de l'API Potentiomètre
| Method | Returns | Description |
|---|---|---|
| readPot() | int | Raw ADC value (0–1023 on Uno) |
| readPotPercent() | float | Percentage (0.0 – 100.0) |
Code Arduino - Capteur de Température (LM35)
Le code suivant lit le capteur de température LM35 et affiche la valeur en Celsius sur l'afficheur et dans le Moniteur Série.
Important : Vous devez retirer le cavalier J1 du shield pour utiliser le capteur de température LM35 (la broche A4 est partagée avec I2C SDA).
Étapes Rapides
- Retirez le cavalier J1 du Shield Multi-Fonctions.
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'Arduino IDE.
- Cliquez sur le bouton Téléverser dans l'Arduino IDE pour téléverser le code sur Arduino.
- Ouvrez le Moniteur Série.
- Observez la lecture de température sur l'afficheur et dans le Moniteur Série.
La lecture de température utilise une moyenne mobile sur 4 échantillons pour des valeurs stables. Le tampon est automatiquement initialisé à la première lecture pour éviter les erreurs de démarrage à froid.
Démo Complète du Shield Multi-Fonctions Arduino
Voici un tutoriel vidéo étape par étape démontrant tous les exemples du Shield Multi-Fonctions. Notez que la vidéo montre l'Arduino Uno R4, mais cela fonctionne de manière identique pour l'Arduino Uno R3 :
Compatibilité des Plateformes
La bibliothèque prend en charge toutes les plateformes Arduino (architectures=*).