Arduino Mega - Shield Multifonction

Si vous possédez un Arduino Mega et souhaitez expérimenter rapidement avec des afficheurs, des boutons, des LED, un buzzer et des capteurs, le Shield Multifonction est la solution la plus simple. Ce guide pas à pas couvre tout ce dont vous avez besoin :

Comme la disposition des connecteurs de l'Arduino Mega est rétrocompatible avec le brochage standard Uno, le Shield Multifonction s'enfiche directement sur le Mega sans fils de liaison. Le Mega vous offre beaucoup plus de broches E/S, plus de mémoire et des ports série supplémentaires, tout en conservant une compatibilité totale avec ce shield.

Shield Multifonction Arduino Mega

Regardez ce tutoriel vidéo pas à pas démontrant tous les exemples du Shield Multifonction. Notez que la vidéo montre l'Arduino Uno R4, mais il fonctionne de manière identique pour l'Arduino Mega :

Matériel Requis

1×Arduino MEGA
1×Alternativement: DIYables MEGA Development Board
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×DIYables Multi-Function Shield
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos du Shield Multifonction

Le Shield Multifonction regroupe six composants couramment utilisés en une seule carte enfichable. Pas de soudure, pas de breadboard, pas de désordre. Voici ce que vous obtenez :

  • Afficheur 7 segments à 4 chiffres — Piloté par un registre à décalage 74HC595. Affiche des entiers, des flottants, des lettres majuscules et des caractères spéciaux (comme °).
  • 3 Boutons poussoirs (S1, S2, S3) — Entrées actives à l'état bas avec résistances de tirage internes. La bibliothèque les déparasite automatiquement.
  • 4 LED (D1, D2, D3, D4) — Sorties actives à l'état bas. Supporte allumer, éteindre, basculer et deux modes de clignotement.
  • Buzzer — Actif à l'état bas. Peut émettre un bip pendant une durée définie ou après un délai programmable.
  • Potentiomètre — Entrée analogique sur la broche A0. Retourne un comptage brut ou une valeur en pourcentage.
  • Capteur de température LM35 — Entrée analogique sur la broche A4. Retourne des degrés Celsius. Retirez le cavalier J1 avant utilisation.

Les broches utilisées par le shield correspondent identiquement sur le Mega :

Fonction Broche Fonction Broche
LED D1 13 Bouton S1 A1
LED D2 12 Bouton S2 A2
LED D3 11 Bouton S3 A3
LED D4 10 Potentiomètre A0
Buzzer 3 Capteur temp LM35 A4
LATCH afficheur 4
CLOCK afficheur 7
DATA afficheur 8
Brochage du Shield Multifonction

Schéma de Câblage

Alignez le shield avec les connecteurs du Mega et enfoncez-le fermement. Le shield occupe les mêmes rangées de connecteurs que sur l'Uno, donc les broches restantes du Mega restent accessibles pour d'autres projets.

Schéma de câblage Shield Multifonction Arduino Mega

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Installation de la Bibliothèque

  1. Connectez votre Arduino Mega à l'ordinateur via un câble USB.
  2. Ouvrez l'IDE Arduino. Sélectionnez Arduino Mega ou Mega 2560 comme carte et choisissez le bon port.
  3. Allez dans le panneau Bibliothèques sur le côté gauche.
  4. Cherchez "DIYables_MultiFuncShield". Trouvez l'entrée de DIYables.
  5. Appuyez sur Installer.
Bibliothèque Shield Multifonction Arduino

La bibliothèque n'a aucune dépendance externe — elle est entièrement autonome.

Structure du Code

Tout programme pour le Shield Multifonction suit le même modèle à deux fonctions :

#include <DIYables_MultiFuncShield.h> void setup() { MFS.begin(); // Initialize the shield hardware } void loop() { MFS.loop(); // Keep display, buttons, LEDs, buzzer running }

MFS.begin() initialise chaque composant. MFS.loop() gère le multiplexage de l'afficheur, le polling des boutons, la planification des clignotements et le minutage du buzzer. Vous devez appeler les deux.

Exemple de Code — Afficheur 7 Segments

Le sketch ci-dessous parcourt plusieurs modes d'affichage : entiers, nombres avec zéros initiaux, flottants, texte, texte pointé, symbole degré et tirets.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-multi-function-shield */ /* * Multi-Function Shield - Display Example * * Cycles through display features every 3 seconds: * 1. Integer number * 2. Integer with leading zeros * 3. Float number * 4. Text string with letters * 5. Text string with dot * 6. Degree symbol + C (special chars) * 7. Dashes * * Hardware: DIYables Multi-Function Shield * * COMPATIBLE Multi-Function Shield: * - https://diyables.io/products/multi-function-shield-for-arduino-uno-mega * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4 Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_MultiFuncShield.h> uint8_t step = 0; unsigned long lastUpdate = 0; void setup() { MFS.begin(); } void loop() { MFS.loop(); if (millis() - lastUpdate >= 3000) { lastUpdate = millis(); switch (step) { case 0: // Integer: " 42" MFS.display.print(42); break; case 1: // Integer with leading zeros: "0042" MFS.display.print(42, true); break; case 2: // Float with 2 decimals: "3.14" MFS.display.print(3.14, 2); break; case 3: // Text string: "HELP" MFS.display.print("HELP"); break; case 4: // Text with dot: "Ab.Cd" MFS.display.print("Ab.Cd"); break; case 5: // Degree + C using special chars: "25°C" MFS.display.clear(); MFS.display.setNumber(1, 2); MFS.display.setNumber(2, 5); MFS.display.setChar(3, SegChars::DEGREE); MFS.display.setChar(4, SegChars::C); MFS.display.show(); break; case 6: // Dashes: "----" MFS.display.print("----"); break; } step = (step + 1) % 7; } }

Étapes de Téléversement

  • Montez le Shield Multifonction sur le Mega.
  • Branchez le Mega à votre ordinateur.
  • Dans l'IDE Arduino, sélectionnez la carte et le port, puis collez le code.
  • Cliquez sur Téléverser.

Toutes les 3 secondes, l'afficheur passe au mode suivant afin que vous puissiez voir chaque format en action.

Afficheur — Référence des Méthodes

Méthode Rôle Exemple
print(int) Affiche un entier MFS.display.print(42)
print(int, true) Affiche avec zéros initiaux MFS.display.print(42, true) → 0042
print(float, dp) Affiche un flottant MFS.display.print(3.14, 2)
print(text) Affiche une chaîne MFS.display.print("HELP")
setNumber(pos, val) Écrit un seul chiffre (pos 1–4) MFS.display.setNumber(1, 5)
setChar(pos, ch) Écrit un caractère MFS.display.setChar(2, 'A')
setChar(pos, SegChars) Écrit un symbole spécial MFS.display.setChar(3, SegCharsDEGREE)
setDot(pos) Active le segment point MFS.display.setDot(2)
clear() Efface l'afficheur MFS.display.clear()
show() Applique les changements en attente MFS.display.show()

print() appelle show() pour vous. Pour une composition manuelle, utilisez clear()setNumber()/setChar()/setDot()show().

Symboles spéciaux disponibles via SegChars : DASH, UNDERSCORE, C, E, F, DEGREE.

Exemple de Code — Boutons

Lire les événements des boutons et les envoyer au Moniteur Série.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-multi-function-shield */ /* * Multi-Function Shield - Buttons Example * * Detects button presses and releases, prints to Serial Monitor. * * Hardware: DIYables Multi-Function Shield * * COMPATIBLE Multi-Function Shield: * - https://diyables.io/products/multi-function-shield-for-arduino-uno-mega * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4 Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_MultiFuncShield.h> void setup() { Serial.begin(9600); MFS.begin(); } void loop() { MFS.loop(); if (MFS.button1.isPressed()) Serial.println("Button 1 pressed"); if (MFS.button1.isReleased()) Serial.println("Button 1 released"); if (MFS.button2.isPressed()) Serial.println("Button 2 pressed"); if (MFS.button2.isReleased()) Serial.println("Button 2 released"); if (MFS.button3.isPressed()) Serial.println("Button 3 pressed"); if (MFS.button3.isReleased()) Serial.println("Button 3 released"); }

Étapes de Téléversement

  • Collez le code et cliquez sur Téléverser.
  • Ouvrez le Moniteur Série (9600 bauds).
  • Appuyez et relâchez S1, S2, S3 pour voir les événements enregistrés.

Boutons — Référence des Méthodes

Méthode Rôle
isPressed() Vrai sur le front descendant (bouton enfoncé)
isReleased() Vrai sur le front montant (bouton relâché)
setDebounceTime(ms) Modifier la période de déparasitage (50 ms par défaut)

Les boutons sont accessibles via MFS.button1, MFS.button2, MFS.button3 ou via l'assistant d'index MFS.button(1) à MFS.button(3). Le déparasitage et la configuration des résistances de tirage sont gérés en interne.

Exemple de Code — LED

Allumer les LED une par une, puis faire clignoter les quatre simultanément.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-multi-function-shield */ /* * Multi-Function Shield - LEDs Example * * Demonstrates turn on, turn off, and blink for each LED. * * Hardware: DIYables Multi-Function Shield * * COMPATIBLE Multi-Function Shield: * - https://diyables.io/products/multi-function-shield-for-arduino-uno-mega * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4 Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_MultiFuncShield.h> void setup() { Serial.begin(9600); MFS.begin(); // Turn on all LEDs one by one Serial.println("Turn ON LEDs one by one"); for (uint8_t i = 1; i <= 4; i++) { MFS.led(i).turnON(); delay(500); } delay(1000); // Turn off all LEDs one by one Serial.println("Turn OFF LEDs one by one"); for (uint8_t i = 1; i <= 4; i++) { MFS.led(i).turnOFF(); delay(500); } delay(1000); // Blink individual LED (LED 1 only) Serial.println("Blink LED 1 individually"); MFS.led(1).blink(300); unsigned long start = millis(); while (millis() - start < 3000) MFS.loop(); MFS.led(1).turnOFF(); delay(1000); // Blink all LEDs together Serial.println("Blink all LEDs together"); MFS.allLedsBlink(500); } void loop() { MFS.loop(); }

Étapes de Téléversement

  • Collez le code et cliquez sur Téléverser.

Vous verrez D1 à D4 s'allumer dans l'ordre, suivi d'un schéma de clignotement synchronisé.

LED — Référence des Méthodes

Méthode Rôle
turnON() Allumer la LED
turnOFF() Éteindre la LED
toggle() Inverser l'état actuel
blink(interval) Clignotement symétrique
blink(onTime, offTime) Clignotement asymétrique
isOn() Vérifier si la LED est allumée

Raccourcis de groupe sur MFS :

Méthode Rôle
allLedsOn() Toutes les quatre LED allumées
allLedsOff() Toutes les quatre LED éteintes
allLedsBlink(interval) Clignotement synchronisé
allLedsBlink(onTime, offTime) Clignotement asymétrique synchronisé

Les LED sont actives à l'état bas. Accédez-y via MFS.led1MFS.led4 ou MFS.led(1)MFS.led(4).

Exemple de Code — Buzzer

Émettre un bip bref toutes les deux secondes.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-multi-function-shield */ /* * Multi-Function Shield - Buzzer Example * * Beeps the buzzer every 2 seconds. * * Hardware: DIYables Multi-Function Shield * * COMPATIBLE Multi-Function Shield: * - https://diyables.io/products/multi-function-shield-for-arduino-uno-mega * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4 Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_MultiFuncShield.h> unsigned long lastBeep = 0; void setup() { MFS.begin(); } void loop() { MFS.loop(); if (millis() - lastBeep >= 2000) { lastBeep = millis(); MFS.buzzer.beep(100); } }

Étapes de Téléversement

  • Collez le code et cliquez sur Téléverser.

Vous devriez entendre un court bip répété toutes les 2 secondes.

Buzzer — Référence des Méthodes

Méthode Rôle
beep(ms) Faire sonner le buzzer pendant une durée donnée
beep(ms, delayMs) Attendre d'abord, puis émettre un bip
stop() Couper le buzzer immédiatement
isBeeping() Vrai pendant que le buzzer sonne

Exemple de Code — Potentiomètre

Lire le potentiomètre et imprimer la valeur et le pourcentage sur le Série.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-multi-function-shield */ /* * Multi-Function Shield - Potentiometer Example * * Reads the potentiometer and shows the percentage on the display. * * NOTE: The potentiometer on the shield is a multi-turn trimmer. * You need to rotate it MANY turns to go from 0% to 100%. * If the value stays at 0% or 100%, rotate in the opposite direction. * * Hardware: DIYables Multi-Function Shield * * COMPATIBLE Multi-Function Shield: * - https://diyables.io/products/multi-function-shield-for-arduino-uno-mega * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4 Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_MultiFuncShield.h> unsigned long lastUpdate = 0; float lastPct = -1; void setup() { Serial.begin(9600); MFS.begin(); Serial.println("Rotate potentiometer knob (multi-turn trimmer)."); Serial.println("It requires many turns to go from 0% to 100%."); } void loop() { MFS.loop(); if (millis() - lastUpdate >= 500) { lastUpdate = millis(); int raw = MFS.readPot(); float pct = MFS.readPotPercent(); Serial.print("Raw: "); Serial.print(raw); Serial.print(" Percent: "); Serial.print(pct, 1); Serial.print("%"); if (pct <= 0.1) Serial.print(" ← MIN (rotate clockwise to increase)"); else if (pct >= 99.9) Serial.print(" ← MAX (rotate counter-clockwise to decrease)"); Serial.println(); lastPct = pct; } }

Étapes de Téléversement

  • Collez le code et cliquez sur Téléverser.
  • Ouvrez le Moniteur Série.
  • Tournez le bouton et observez la lecture en temps réel sur le moniteur.

Potentiomètre — Référence des Méthodes

Méthode Retourne Rôle
readPot() int Comptage ADC brut (0–1023 sur Mega)
readPotPercent() float Normalisé à 0,0–100,0 %

Exemple de Code — Capteur de Température (LM35)

Lire le LM35 et afficher les degrés Celsius sur l'afficheur et le Série.

Remarque : Vous devez retirer le cavalier J1 avant d'utiliser le capteur de température. La broche A4 sert aussi de ligne SDA I2C, et le cavalier la connecte à I2C par défaut.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-multi-function-shield */ /* * Multi-Function Shield - Temperature Example * * Reads the LM35 temperature sensor and shows Celsius on the display. * Note: Requires jumper J1 removed (pin A4). * * Hardware: DIYables Multi-Function Shield * * COMPATIBLE Multi-Function Shield: * - https://diyables.io/products/multi-function-shield-for-arduino-uno-mega * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4 Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_MultiFuncShield.h> unsigned long lastUpdate = 0; void setup() { Serial.begin(9600); MFS.begin(); MFS.display.print(0); } void loop() { MFS.loop(); if (millis() - lastUpdate >= 500) { lastUpdate = millis(); float temp = MFS.readTemperature(); MFS.display.print(temp, 1); Serial.print("Temp: "); Serial.print(temp, 1); Serial.println(" C"); } }

Étapes de Téléversement

  • Retirez d'abord le cavalier J1.
  • Collez le code, cliquez sur Téléverser, et ouvrez le Moniteur Série.
  • La température s'affiche en temps réel.

Une moyenne mobile sur 4 échantillons assure des lectures stables. Le premier appel pré-remplit le tampon de moyennage pour éviter tout glitch au démarrage.

Arduino Mega Shield Multifonction - Démo Complète

Voici un tutoriel vidéo pas à pas démontrant tous les exemples du Shield Multifonction. Notez que la vidéo montre l'Arduino Uno R4, mais il fonctionne de manière identique pour l'Arduino Mega :

Support de Plateforme

La bibliothèque supporte toutes les plateformes Arduino (architectures=*).

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !