Arduino Uno R4 - Shield Multi-Fonctions

Le Shield Multi-Fonctions est un excellent compagnon pour l'Arduino Uno R4 — que vous ayez la version Minima ou WiFi. Dans ce guide, vous allez apprendre à :

L'Arduino Uno R4 partage le même facteur de forme Uno que l'Uno R3 classique, donc le Shield Multi-Fonctions se branche directement sans aucun câblage supplémentaire. L'Uno R4 dispose du microcontrôleur Renesas RA4M1 (Minima) ou RA4M1 + ESP32-S3 (WiFi), offrant plus de mémoire, une vitesse d'horloge plus rapide et un ADC 14 bits par rapport à l'Uno original.

Arduino Uno R4 Multi-Function Shield

Regardez ce tutoriel vidéo étape par étape démontrant tous les exemples du Shield Multi-Fonctions :

À Propos du Shield Multi-Fonctions

Le Shield Multi-Fonctions intègre plusieurs composants sur une seule carte qui se branche directement dans tout connecteur compatible Uno. Voici ce qu'il comprend :

  • Un afficheur 7 segments à 4 chiffres contrôlé via un registre à décalage 74HC595 — capable d'afficher des entiers, des décimales, des lettres A–Z et des symboles comme le signe degré (°).
  • Trois boutons poussoirs (S1, S2, S3) câblés en actif BAS avec des résistances de tirage internes — prêts pour détecter les appuis et les relâchements avec antirebond.
  • Quatre LEDs (D1–D4), également actives BAS — contrôlables individuellement pour allumer/éteindre/basculer/clignoter, plus une fonction de commodité pour faire clignoter toutes à la fois.
  • Un buzzer actif-BAS — programmable pour des bips simples ou des séquences minutées.
  • Un potentiomètre sur la broche analogique A0 — renvoie des comptages ADC bruts ou une lecture de 0–100%.
  • Un capteur de température LM35 sur la broche analogique A4 — renvoie des lectures en Celsius (retirez le cavalier J1 pour l'activer).

Puisque l'Uno R4 maintient la disposition de broches Uno classique, chaque correspondance de broches est identique à l'Uno original :

Function Pin Function 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
Multi-Function Shield Pinout

Schéma de Câblage

Aucun fil de liaison ni breadboard nécessaire — il suffit d'aligner le Shield Multi-Fonctions avec les connecteurs de l'Uno R4 et de l'enficher. Le shield se fixe sur la carte exactement comme sur l'Uno R3 classique.

Arduino Uno R4 Multi-Function Shield wiring diagram

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

Voir Comment alimenter l'Arduino UNO R4..

Comment Installer la Bibliothèque

  1. Branchez l'Arduino Uno R4 à votre ordinateur avec un câble USB Type-C.
  2. Dans l'Arduino IDE, vérifiez que la bonne carte (Arduino Uno R4 Minima ou WiFi) et le bon port série sont sélectionnés.
  3. Cliquez sur l'icône Bibliothèques dans la barre latérale gauche.
  4. Tapez "DIYables_MultiFuncShield" dans la zone de recherche et localisez la bibliothèque publiée par DIYables.
  5. Cliquez sur Installer pour ajouter la bibliothèque à votre IDE.
Arduino Multi-Function Shield library

Aucune dépendance supplémentaire n'est nécessaire — la bibliothèque est entièrement autonome.

Structure Minimale du Sketch

Tous les sketches qui utilisent le Shield Multi-Fonctions partagent ce squelette :

#include <DIYables_MultiFuncShield.h> void setup() { MFS.begin(); // Set up display, buttons, LEDs, buzzer } void loop() { MFS.loop(); // Refresh display, poll buttons, update LEDs & buzzer }

Appeler MFS.begin() configure chaque composant du shield. Appeler MFS.loop() à chaque itération maintient le multiplexage de l'afficheur, l'antirebond des boutons, le minutage du clignotement des LEDs et la planification du buzzer en bon fonctionnement.

Exemple Afficheur 7 Segments

Cet exemple montre comment mettre des nombres, des flottants, des chaînes de texte et des symboles spéciaux sur l'afficheur 4 chiffres.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-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; } }

Comment Exécuter

  • Placez le Shield Multi-Fonctions sur l'Arduino Uno R4.
  • Connectez la carte à votre PC avec un câble USB Type-C.
  • Ouvrez l'Arduino IDE et sélectionnez la carte et le port.
  • Collez le code ci-dessus dans l'éditeur.
  • Appuyez sur Téléverser.

L'afficheur fera pivoter sept présentations différentes — un entier, un entier à zéros non significatifs, un nombre à virgule flottante, du texte, du texte avec un point décimal, un symbole degré et des tirets — en alternant toutes les 3 secondes.

Méthodes d'Affichage en Un Coup d'Œil

Method What It Does Usage Example
print(int) Shows an integer value MFS.display.print(42)
print(int, true) Shows an integer with leading zeros MFS.display.print(42, true) → 0042
print(float, dp) Shows a floating-point number MFS.display.print(3.14, 2)
print(text) Shows a string (A-Z, 0-9, -, _) MFS.display.print("HELP")
setNumber(pos, val) Places one digit at a position (1–4) MFS.display.setNumber(1, 5)
setChar(pos, ch) Places a character at a position MFS.display.setChar(2, 'A')
setChar(pos, SegChars) Places a special symbol MFS.display.setChar(3, SegCharsDEGREE)
setDot(pos) Lights up the dot at a position MFS.display.setDot(2)
clear() Blanks the entire display MFS.display.clear()
show() Pushes manual changes to the display MFS.display.show()

Les surcharges de print() appellent show() en interne. Lors de la construction manuelle d'un affichage avec setNumber(), setChar() ou setDot(), appelez d'abord clear() et show() à la fin.

Caractères spéciaux supportés via SegChars : DASH, UNDERSCORE, C, E, F, DEGREE.

Exemple Bouton

Détectez quand chaque bouton est appuyé ou relâché et affichez l'événement via Série.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-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"); }

Comment Exécuter

  • Collez le code dans l'Arduino IDE et appuyez sur Téléverser.
  • Ouvrez le Moniteur Série.
  • Essayez d'appuyer et de relâcher S1, S2 et S3 — chaque événement est affiché au fur et à mesure.

Méthodes Bouton en Un Coup d'Œil

Method What It Does
isPressed() Returns true the moment the button goes down
isReleased() Returns true the moment the button comes back up
setDebounceTime(ms) Adjusts the debounce window (50 ms by default)

Chaque bouton est automatiquement antirebond et utilise une logique active BAS avec une résistance de tirage interne. Référencez les boutons individuels avec MFS.button1 / MFS.button2 / MFS.button3, ou utilisez l'accesseur d'index MFS.button(1) à MFS.button(3).

Exemple LED

Allumez les quatre LEDs en séquence, puis faites-les toutes clignoter ensemble.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-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(); }

Comment Exécuter

  • Collez le code dans l'Arduino IDE et appuyez sur Téléverser.

Regardez les LEDs s'allumer une à une avec une pause d'une demi-seconde, puis les quatre commencent à clignoter à l'unisson.

Méthodes LED en Un Coup d'Œil

Method What It Does
turnON() Switches the LED on
turnOFF() Switches the LED off
toggle() Flips the current state
blink(interval) Blinks with equal on and off duration
blink(onTime, offTime) Blinks with custom on and off durations
isOn() Returns true when the LED is lit

Raccourcis de groupe entier disponibles sur MFS :

Method What It Does
allLedsOn() Lights up all four LEDs
allLedsOff() Turns off all four LEDs
allLedsBlink(interval) Blinks all four LEDs together
allLedsBlink(onTime, offTime) Blinks all with custom timing

Les LEDs fonctionnent en mode actif BAS. Utilisez MFS.led1 à MFS.led4 ou la forme indexée MFS.led(1) à MFS.led(4).

Exemple Buzzer

Jouez un court bip à intervalles réguliers.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-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); } }

Comment Exécuter

  • Collez le code dans l'Arduino IDE et appuyez sur Téléverser.

Un bref bip retentit toutes les 2 secondes.

Méthodes Buzzer en Un Coup d'Œil

Method What It Does
beep(ms) Produces a beep lasting the given milliseconds
beep(ms, delayMs) Waits delayMs, then beeps for ms
stop() Silences the buzzer right away
isBeeping() Returns true while the buzzer is active

Exemple Potentiomètre

Lisez le potentiomètre et affichez la valeur et le pourcentage dans Série.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-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; } }

Comment Exécuter

  • Collez le code dans l'Arduino IDE et appuyez sur Téléverser.
  • Ouvrez le Moniteur Série.
  • Faites tourner le bouton du potentiomètre et regardez la valeur se mettre à jour dans le moniteur.

Méthodes Potentiomètre en Un Coup d'Œil

Method Return Type What It Does
readPot() int Raw ADC reading (0–16383 on Uno R4's 14-bit ADC)
readPotPercent() float Scaled percentage from 0.0 to 100.0

Exemple Capteur de Température (LM35)

Lisez le capteur LM35 et affichez la température en Celsius sur l'afficheur et dans le Moniteur Série.

Rappel : Le cavalier J1 doit être retiré du shield avant d'utiliser le capteur LM35, car la broche A4 est partagée avec la ligne I2C SDA.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-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"); } }

Comment Exécuter

  • Retirez le cavalier J1 du Shield Multi-Fonctions.
  • Collez le code dans l'Arduino IDE et appuyez sur Téléverser.
  • Ouvrez le Moniteur Série.
  • La température actuelle apparaît sur l'afficheur et est affichée dans Série.

Les valeurs de température sont lissées à l'aide d'une moyenne mobile sur 4 échantillons. À la toute première lecture, le tampon est pré-rempli pour que vous obteniez immédiatement une valeur stable.

Démo Complète du Shield Multi-Fonctions Arduino Uno R4

Voici un tutoriel vidéo étape par étape démontrant tous les exemples du Shield Multi-Fonctions :

Compatibilité des Plateformes

La bibliothèque prend en charge 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 !