Arduino Mega - DC-Motormodul
Haben Sie einen Arduino Mega und möchten einige Motoren zum Laufen bringen? Das Motor Shield Rev3 ist der schnellste Weg vom Auspacken zur Rotation. Die Header des Mega sind rückwärtskompatibel mit dem Standard-Uno-Pinout, daher sitzt das Shield einfach auf - und mit der DIYables_DC_Motor-Bibliothek können Sie in wenigen Minuten Motorsteuerkode schreiben.
Diese Schritt-für-Schritt-Anleitung behandelt:
- Montage des Motor Shield Rev3 auf dem Arduino Mega.
- Verbindung eines Gleichstrommotors und externer Batterien.
- Steuerung der Motordrehrichtung - vorwärts oder rückwärts.
- Einstellung der Motorgeschwindigkeit mit PWM (0-255).
- Einbindung und Freigabe der elektronischen Bremse.
- Messung des durch den Motor fließenden Stroms.
- Betrieb von zwei Motoren auf Kanal A und Kanal B gleichzeitig.
Das Mega bringt zusätzliche E/A, mehr SRAM und zusätzliche Hardware-Seriellports mit - praktisch, wenn Ihr Projekt Sensoren oder ein Display neben dem Motorsteuerer ansprechen muss.

Hardware erforderlich
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Verständnis des Motor Shield Rev3
Das Shield trägt einen L298P Dual-Vollbrücken-Treiber - einen einzelnen IC, der zwei unabhängige Gleichstrom-Motorkanäle mit Strom versorgt. Jeder Kanal hat vier Steuersignale:
| Signal | Zweck |
|---|---|
| Direction | Digitaler Pin - HIGH für einen Drehsinn, LOW für den anderen |
| PWM | Analog (PWM) Pin - Arbeitszyklus von 0 (Stopp) bis 255 (Maximum) |
| Brake | Digitaler Pin - HIGH aktiviert die Bremse, LOW deaktiviert sie |
| Current Sensing | Analoger Pin - Spannung proportional zum Motorstrom |
Auf dem Mega landen diese Signale auf denselben physischen Pins wie auf dem Uno:
| Funktion | Kanal A | Kanal B |
|---|---|---|
| Direction | D12 | D13 |
| PWM (Geschwindigkeit) | D3 | D11 |
| Brake | D9 | D8 |
| Current Sensing | A0 | A1 |
Alle verbleibenden Mega-Pins bleiben für Ihre anderen Peripheriegeräte frei.
Stromversorgung erforderlich
Gleichstrommotoren sind stromhungrig - sie ziehen weit mehr Strom, als USB liefern kann. Verbinden Sie ein 6-12-V-Batteriepaket mit den Stromschraubenklemmen des Shields. Das Mega funktioniert unabhängig über USB.
Schaltplan
Richten Sie das Shield an den Headers des Mega aus und drücken Sie fest, bis jeder Pin sitzt. Verbinden Sie die Gleichstrom-Motorleitungen mit den Kanal A-Schraubenklemmen (auf der Leiterplatte gekennzeichnet). Verdrahten Sie dann Ihr Batteriepaket mit den Stromklemmen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Installation der Bibliothek
- Verbinden Sie Ihren Arduino Mega über ein USB-Kabel mit dem Computer.
- Öffnen Sie die Arduino IDE. Wählen Sie Arduino Mega oder Mega 2560 als Board und wählen Sie den richtigen Port.
- Gehen Sie zum Libraries Panel auf der linken Seite.
- Suchen Sie nach "DIYables_DC_Motor". Finden Sie den Eintrag von DIYables.
- Drücken Sie Install.

Die Bibliothek hat keine externen Abhängigkeiten.
Kode-Skelett
Das Minimum, um einen Motor zum Laufen zu bringen:
begin() setzt die Pin-Modi und aktiviert die Bremse. run() wählt eine Richtung, gibt die Bremse frei und wendet PWM an. brake() sperrt die Welle und setzt PWM auf Null. Das ist der gesamte Steuerablauf.
Beispiel - Kanal A
Drehen Sie einen Motor auf Kanal A und wechseln Sie die Richtung bei jedem Zyklus.
Schritte zum Hochladen
- Montieren Sie das Shield auf dem Mega und verdrahten Sie den Motor mit Kanal A.
- Stecken Sie das Batteriepaket und das USB-Kabel ein.
- Fügen Sie den Kode in die Arduino IDE ein, wählen Sie das Board und den Port und drücken Sie Upload.
- Öffnen Sie den Seriellen Monitor (9600 Baud), um die Statusausgabe anzusehen.
Der Motor sollte sich zwei Sekunden in eine Richtung drehen, zwei Sekunden anhalten, zwei Sekunden in die andere Richtung drehen und dann wiederholen.
API auf einen Blick
| Methode | Effekt | Beispielaufruf |
|---|---|---|
| run(dir, speed) | Richtung + Geschwindigkeit auf einmal; gibt Bremse automatisch frei | motor.run(MOTOR_FORWARD, 100) |
| setSpeed(speed) | Stellt nur PWM (0-255) ein | motor.setSpeed(200) |
| setDirection(dir) | Wechselt nur die Richtung | motor.setDirection(MOTOR_BACKWARD) |
| brake() | Vollständiger Stopp - Bremse an, PWM aus | motor.brake() |
| release() | Bremse aus | motor.release() |
| readCurrent() | Rohes ADC vom Erfassungs-Pin (-1 wenn nicht verfügbar) | motor.readCurrent() |
Beispiel - Kanal B
Gleiche Logik, anderer Kanal.
Schritte zum Hochladen
- Verschieben Sie die Motordrähte zu Kanal B.
- Laden Sie hoch und öffnen Sie den Seriellen Monitor.
Die einzige Kodeänderung ist die Kanalkonstate.
Beispiel - Betrieb mit Dualmotoren
Steuern Sie zwei Motoren gleichzeitig und durchlaufen Sie synchronisierte und entgegengesetzte Muster.
Schritte zum Hochladen
- Verbinden Sie einen Motor mit Kanal A und einen zweiten Motor mit Kanal B.
- Laden Sie hoch und beobachten Sie den Seriellen Monitor.
Das Programm führt beide Motoren vorwärts, dann rückwärts und dann in entgegengesetzten Richtungen aus - mit einer Bremspause zwischen den einzelnen Phasen.
Beispiel - Stromüberwachung
Lesen Sie den Stromerfassungs-Pin, während der Motor läuft.
Schritte zum Hochladen
- Verbinden Sie einen Motor mit Kanal A.
- Laden Sie hoch, öffnen Sie den Seriellen Monitor und beobachten Sie die ADC-Ablesungen, die alle halbe Sekunde aktualisiert werden.
Details der Stromerfassung
Die Pins A0 (Kanal A) und A1 (Kanal B) geben eine Spannung aus, die proportional zum Motorstrom ist. Auf dem 10-Bit-ADC des Mega beträgt der Bereich 0-1023. Multiplizieren Sie mit dem dokumentierten Faktor mV-pro-Ampere des Shields, um die tatsächliche Strömung umzurechnen.
Beispiel - Benutzerdefinierte Pin-Zuordnung
Setzen Sie die Standard-Pins außer Kraft, wenn Ihre Hardware vom Standard-Shield-Layout abweicht.
Schritte zum Hochladen
- Bearbeiten Sie die Konstruktor-Argumente, um Ihre tatsächliche Verdrahtung zu entsprechen.
- Laden Sie hoch und testen Sie.
Häufige Probleme und Lösungen
| Symptom | Wahrscheinliche Ursache | Behebung |
|---|---|---|
| Motor bewegt sich nicht | Falscher Kanal im Kode ausgewählt | Passen Sie MOTOR_CH_A / MOTOR_CH_B an die von Ihnen verwendete Schraubenklemme an |
| Motor dreht sich kaum | PWM-Wert zu niedrig | Versuchen Sie eine höhere Geschwindigkeit - fangen Sie mit 100 an |
| Motor läuft aber keine Stromablesung | 3-Pin-Konstruktor verwendet (keine Erfassung) | Verwenden Sie den Kanal-Konstruktor oder den 4-Pin-Konstruktor |
| Shield wird heiß | Motor blockiert oder zieht zu viel Strom | Reduzieren Sie die Last oder verwenden Sie einen Motor innerhalb der Bewertung von 2 A pro Kanal des Shields |
| Keine Reaktion überhaupt | Externe Stromversorgung fehlt | Überprüfen Sie doppelt die Batterieverbindungen und die Spannung |
Arduino Mega DC Motor Shield - Vollständige Demo
Das folgende ist ein Schritt-für-Schritt-Video-Tutorial, das alle Beispiele des DC Motor Shield demonstriert:
Plattformunterstützung
Vollständig auf Arduino-Standard-APIs integriert - kompatibel mit jeder von Arduino unterstützten Architektur.