Arduino Mega - Multi-Funktions-Shield

Wenn Sie einen Arduino Mega haben und schnell mit Displays, Tasten, LEDs, einem Summer und Sensoren experimentieren möchten, ist das Multi-Funktions-Shield die einfachste Option. Diese Schritt-für-Schritt-Anleitung deckt alles ab, was Sie brauchen:

Da das Arduino-Mega-Header-Layout abwärtskompatibel mit dem Standard-Uno-Pinout ist, gleitet das Multi-Funktions-Shield ohne Jumper-Kabel direkt auf den Mega. Der Mega bietet Ihnen deutlich mehr E/A-Pins, mehr Speicher und zusätzliche serielle Ports – alles bei voller Kompatibilität mit diesem Shield.

Arduino Mega Multi-Function Shield

Sehen Sie sich dieses Schritt-für-Schritt-Video-Tutorial an, das alle Beispiele des Multi-Funktions-Shields demonstriert. Beachten Sie, dass das Video Arduino Uno R4 zeigt, aber es funktioniert identisch für Arduino Mega:

Erforderliche Hardware

1×Arduino MEGA
1×Alternativ: DIYables MEGA Development Board
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×DIYables Multi-Function Shield
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das Multi-Funktions-Shield

Das Multi-Funktions-Shield bundles sechs häufig verwendete Komponenten in einem Steckmodul. Kein Löten, kein Breadboard, kein Chaos. Hier ist, was Sie bekommen:

  • 4-stellige 7-Segment-Anzeige – Angetrieben von einem 74HC595-Schieberegister. Zeigt Ganzzahlen, Dezimalzahlen, Großbuchstaben und Sonderzeichen (wie °) an.
  • 3 Drucktasten (S1, S2, S3) – Aktiv-NIEDRIG-Eingänge mit internen Pullups. Die Bibliothek entprellt sie automatisch.
  • 4 LEDs (D1, D2, D3, D4) – Aktiv-NIEDRIG-Ausgänge. Unterstützt Ein, Aus, Umschalten und zwei Blinkmodi.
  • Summer – Aktiv-NIEDRIG. Kann für eine festgelegte Dauer oder nach einer programmierbaren Verzögerung piepen.
  • Potenziometer – Analogeingang an Pin A0. Gibt einen Rohwert oder einen Prozentwert zurück.
  • LM35-Temperatursensor – Analogeingang an Pin A4. Gibt Celsius zurück. Entfernen Sie Jumper J1 vor der Verwendung.

Die vom Shield verwendeten Pins werden auf dem Mega identisch zugeordnet:

Funktion Pin Funktion Pin
LED D1 13 Schaltfläche S1 A1
LED D2 12 Schaltfläche S2 A2
LED D3 11 Schaltfläche S3 A3
LED D4 10 Potenziometer A0
Summer 3 LM35-Temperatursensor A4
Display-LATCH 4
Display-CLOCK 7
Display-DATA 8
Multi-Function Shield Pinout

Schaltplan

Richten Sie das Shield an den Headern des Mega aus und drücken Sie es fest nach unten. Das Shield nimmt die gleichen Header-Reihen wie auf dem Uno ein, sodass die verbleibenden Mega-Pins für andere Projekte zugänglich bleiben.

Arduino Mega Multi-Function Shield Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Bibliothek installieren

  1. Verbinden Sie Ihren Arduino Mega über ein USB-Kabel mit dem Computer.
  2. Öffnen Sie die Arduino IDE. Wählen Sie Arduino Mega oder Mega 2560 als Platine und wählen Sie den richtigen Port.
  3. Gehen Sie zum Bibliotheken-Panel auf der linken Seite.
  4. Suchen Sie nach "DIYables_MultiFuncShield". Finden Sie den Eintrag von DIYables.
  5. Drücken Sie Installieren.
Arduino Multi-Function Shield Bibliothek

Die Bibliothek hat keine externen Abhängigkeiten – sie ist völlig in sich geschlossen.

Code-Skelett

Jedes Multi-Funktions-Shield-Programm folgt dem gleichen Muster mit zwei Funktionen:

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

MFS.begin() richtet jede Komponente ein. MFS.loop() verwaltet Display-Multiplexing, Button-Polling, Blink-Planung und Summer-Timing. Sie müssen beide aufrufen.

Code-Beispiel – 7-Segment-Anzeige

Der Sketch unten durchläuft mehrere Anzeigemodi: Ganzzahlen, Zahlen mit führenden Nullen, Dezimalzahlen, Text, Text mit Punkten, Gradsymbol und Bindestriche.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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; } }

Schritte zum Hochladen

  • Montieren Sie das Multi-Funktions-Shield auf dem Mega.
  • Stecken Sie den Mega in Ihren Computer.
  • Wählen Sie in Arduino IDE die Platine und den Port aus, dann fügen Sie den Code ein.
  • Drücken Sie Hochladen.

Alle 3 Sekunden wechselt die Anzeige zum nächsten Modus, damit Sie jedes Format in Aktion sehen können.

Anzeige – Methodenreferenz

Methode Zweck Beispiel
print(int) Ganze Zahl rendern MFS.display.print(42)
print(int, true) Mit führenden Nullen rendern MFS.display.print(42, true) → 0042
print(float, dp) Dezimalzahl rendern MFS.display.print(3.14, 2)
print(text) Zeichenkette rendern MFS.display.print("HELP")
setNumber(pos, val) Schreiben einer einzelnen Ziffer (pos 1–4) MFS.display.setNumber(1, 5)
setChar(pos, ch) Schreiben eines Zeichens MFS.display.setChar(2, 'A')
setChar(pos, SegChars) Schreiben eines Spezial symbols MFS.display.setChar(3, SegCharsDEGREE)
setDot(pos) Aktivieren Sie das Punkte segment MFS.display.setDot(2)
clear() Anzeige löschen MFS.display.clear()
show() Ausstehende Änderungen anwenden MFS.display.show()

print() ruft show() für Sie auf. Für manuelle Zusammensetzung verwenden Sie clear()setNumber()/setChar()/setDot()show().

Spezial symbole verfügbar über SegChars: DASH, UNDERSCORE, C, E, F, DEGREE.

Code-Beispiel – Tasten

Lesen Sie Tasten ereignisse und senden Sie sie an den Serial Monitor.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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"); }

Schritte zum Hochladen

  • Fügen Sie den Code ein und klicken Sie auf Hochladen.
  • Öffnen Sie den Serial Monitor (9600 Baud).
  • Drücken und lassen Sie S1, S2, S3 los, um Ereignisse zu sehen, die protokolliert werden.

Tasten – Methodenreferenz

Methode Zweck
isPressed() Wahr auf der fallenden Flanke (Taste geht nach unten)
isReleased() Wahr auf der steigenden Flanke (Taste kommt zurück nach oben)
setDebounceTime(ms) Ändern Sie den Entprellzeitraum (Standard 50 ms)

Tasten werden als MFS.button1, MFS.button2, MFS.button3 oder über den Index-Helfer MFS.button(1) bis MFS.button(3) zugegriffen. Entprellen und Pullup-Konfiguration werden intern verwaltet.

Code-Beispiel – LEDs

Schalten Sie die LEDs nacheinander ein und lassen Sie dann alle vier gleichzeitig blinken.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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(); }

Schritte zum Hochladen

  • Fügen Sie den Code ein und klicken Sie auf Hochladen.

Sie werden sehen, dass D1 bis D4 der Reihe nach aufleuchten, gefolgt von einem synchronisierten Blinkemuster.

LEDs – Methodenreferenz

Methode Zweck
turnON() LED anschalten
turnOFF() LED ausschalten
toggle() Aktuellen Zustand umkehren
blink(interval) Symmetrisches Blinken
blink(onTime, offTime) Asymmetrisches Blinken
isOn() Überprüfen Sie, ob die LED derzeit leuchtet

Gruppenkürzel auf MFS:

Methode Zweck
allLedsOn() Alle vier LEDs an
allLedsOff() Alle vier LEDs aus
allLedsBlink(interval) Synchrones Blinken
allLedsBlink(onTime, offTime) Synchrones asymmetrisches Blinken

LEDs sind aktiv-NIEDRIG. Adressieren Sie sie als MFS.led1MFS.led4 oder MFS.led(1)MFS.led(4).

Code-Beispiel – Summer

Lassen Sie alle 2 Sekunden einen kurzen Piepton ertönen.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); } }

Schritte zum Hochladen

  • Fügen Sie den Code ein und klicken Sie auf Hochladen.

Sie sollten alle 2 Sekunden einen kurzen Piepton hören.

Summer – Methodenreferenz

Methode Zweck
beep(ms) Summer für eine bestimmte Dauer erklingen lassen
beep(ms, delayMs) Erst verzögern, dann piepen
stop() Summer sofort abschalten
isBeeping() Wahr, während der Summer erklingt

Code-Beispiel – Potenziometer

Lesen Sie das Potenziometer und drucken Sie den Wert und den Prozentwert auf die serielle Schnittstelle.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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; } }

Schritte zum Hochladen

  • Fügen Sie den Code ein und klicken Sie auf Hochladen.
  • Öffnen Sie den Serial Monitor.
  • Drehen Sie den Knopf und beobachten Sie die Live-Messung auf dem Monitor.

Potenziometer – Methodenreferenz

Methode Rückgabe Zweck
readPot() int Rohes ADC-Zählwert (0–1023 auf Mega)
readPotPercent() float Normalisiert auf 0,0–100,0 %

Code-Beispiel – Temperatursensor (LM35)

Lesen Sie den LM35 und zeigen Sie Grad Celsius auf der Anzeige und seriell an.

Hinweis: Sie müssen Jumper J1 entfernen, bevor Sie den Temperatursensor verwenden. Pin A4 dient auch als I2C-SDA-Leitung, und der Jumper verbindet ihn standardmäßig mit I2C.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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"); } }

Schritte zum Hochladen

  • Entfernen Sie zuerst Jumper J1.
  • Fügen Sie den Code ein, klicken Sie auf Hochladen, und öffnen Sie den Serial Monitor.
  • Die Temperatur wird in Echtzeit angezeigt.

Ein 4-Sample-Gleitender Durchschnitt sorgt für stabile Messwerte. Der erste Aufruf füllt den Pufferbereich des Durchschnitts vor, sodass es keinen Kaltstartfehler gibt.

Arduino Mega Multi-Funktions-Shield - Vollständige Demo

Das Folgende ist ein Schritt-für-Schritt-Video-Tutorial, das alle Beispiele des Multi-Funktions-Shields demonstriert. Beachten Sie, dass das Video Arduino Uno R4 zeigt, aber es funktioniert identisch für Arduino Mega:

Plattformunterstützung

Die Bibliothek unterstützt alle Arduino-Plattformen (architectures=*).

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!