Arduino UNO Q - DC-Motorschild
Das Motor Shield Rev3 wird direkt auf die Arduino UNO Q-Anschlüsse aufgesteckt — gleiche Anschluss-Anordnung wie beim klassischen Uno. In dieser Anleitung werden Sie:
- Das Motor Shield Rev3 auf ein Arduino UNO Q-Board aufstecken.
- Einen Gleichstrommotor und eine externe Stromversorgung verkabeln.
- Code schreiben, der den Motor vorwärts und rückwärts dreht.
- Die Motorgeschwindigkeit durch PWM-Werte (0–255) anpassen.
- Die elektronische Bremse anlegen und lösen.
- Zwei Motoren gleichzeitig über Kanal A und Kanal B betreiben.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Motor Shield Rev3 Übersicht
Im Kern des Motor Shield Rev3 sitzt der L298P Dual-Vollbrückentreiber. Dieser Chip bietet Ihnen unabhängige Kontrolle über zwei Gleichstrommotoren — jeder mit eigener Richtungsleitung, PWM-Geschwindigkeitsleitung, Bremsenleitung und Strommess-Analogeingang.
Hier ist, was jede Steuerleitung bewirkt:
- Richtung — ein digitaler Ausgang, der die Drehrichtung bestimmt. HIGH-Schreiben dreht in eine Richtung; LOW dreht in die andere.
- PWM — ein analoger (PWM) Ausgang, der den Arbeitszyklus bestimmt. Werte reichen von 0 (gestoppt) bis 255 (volle Geschwindigkeit).
- Bremse — ein digitaler Ausgang. Wenn Sie ihn HIGH setzen, sperrt die Motorwelle; LOW lässt den Motor frei drehen.
- Strommessung — ein Analogeingang, der anzeigt, wie viel Strom der Motor verbraucht.
Da das Arduino UNO Q die gleichen Anschlussspitzpositionen wie der klassische Uno behält, passen alle Pins automatisch:
| Funktion | Kanal A | Kanal B |
|---|---|---|
| Richtung | D12 | D13 |
| PWM (Geschwindigkeit) | D3 | D11 |
| Bremse | D9 | D8 |
| Strommessung | A0 | A1 |
Motoren mit Strom versorgen
Motoren benötigen mehr Strom als USB liefern kann. Verbinden Sie eine 6–12 V externe Stromversorgung mit den Stromschraubklemmen des Schilds. Das Arduino UNO Q selbst läuft weiterhin über USB.
Schaltplan
Platzieren Sie das Motor Shield Rev3 auf den Arduino UNO Q-Anschlüssen, und stellen Sie sicher, dass jeder Pin ordnungsgemäß sitzt. Befestigen Sie die Gleichstrommotor-Leitungen an den Kanal A-Schraubklemmen. Verbinden Sie die externe Stromversorgung mit den Stromschraubklemmen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Einzelmotor an Kanal A
MCU-Code
Das Arduino UNO Q hat zwei Prozessoren: die STM32 MCU (handhabt Echtzeit-Hardwaresteuerung) und die Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur die STM32 MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
Der folgende Code wechselt die Motorrichtung alle 2 Sekunden mit Bremsung dazwischen:
Schnellanleitung
- Erstmals mit Arduino UNO Q? Folgen Sie der Anleitung Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Schild aufstecken: Drücken Sie das Motor Shield Rev3 fest auf die Arduino UNO Q-Anschlüsse.
- Motor verkabeln: Verbinden Sie Ihren Gleichstrommotor mit den Kanal A-Schraubklemmen.
- Strom anschließen: Verbinden Sie die externe Stromversorgung mit den Stromschraubklemmen des Schilds.
- Verbindung herstellen: Stecken Sie das Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer.
- Arduino App Lab öffnen: Starten Sie Arduino App Lab und warten Sie, bis Ihr Arduino UNO Q erkannt wird.
- Neue App erstellen: Klicken Sie auf die Schaltfläche Neue App erstellen.

- Geben Sie der App einen Namen, z.B.: DIYables_DCMotorShield
- Klicken Sie auf Erstellen, um zu bestätigen.
- Sie sehen, dass in Ihrer neuen App eine Reihe von Ordnern und Dateien generiert werden.

- Suchen Sie die Datei sketch/sketch.ino — hier fügen Sie die MCU-Skizze ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for DIYables_DC_Motor created by DIYables.io and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Hochladen: Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab, um zu kompilieren und auf die STM32 hochzuladen.

- Beobachten: Der Motor wechselt alle 2 Sekunden zwischen vorwärts und rückwärts, mit 2 Sekunden Bremsung zwischen jedem Richtungswechsel.
Methoden-Kurzreferenz
| Methode | Was es tut | Verwendung |
|---|---|---|
| run(dir, speed) | Dreht den Motor in der angegebenen Richtung mit der angegebenen Geschwindigkeit | motor.run(MOTOR_FORWARD, 100) |
| setSpeed(speed) | Ändert die Geschwindigkeit ohne die Richtung oder Bremse zu berühren | motor.setSpeed(200) |
| setDirection(dir) | Ändert die Richtung ohne die Geschwindigkeit oder Bremse zu berühren | motor.setDirection(MOTOR_BACKWARD) |
| brake() | Schaltet die Bremse ein und setzt die Geschwindigkeit auf Null | motor.brake() |
| release() | Schaltet die Bremse aus | motor.release() |
| readCurrent() | Gibt den rohen ADC vom Strommess-Pin zurück | motor.readCurrent() |
Einzelmotor an Kanal B
Identisches Verhalten wie Kanal A, aber auf Kanal B — tauschen Sie einfach die Kanalkonstante.
Schnellanleitung
- Verkabeln Sie den Motor mit den Kanal B-Schraubklemmen.
- Folgen Sie den gleichen Schnellschritten wie im Abschnitt Kanal A oben (App erstellen, Skizze einfügen, Bibliotheken installieren, hochladen).
- Der Motor wechselt die Richtung und bremst auf die gleiche Weise — nur die zugrunde liegenden Pins unterscheiden sich.
Zwei Motoren — Beide Kanäle
Betreiben Sie zwei Motoren unabhängig: beide vorwärts, beide rückwärts und entgegengesetzte Richtungen.
Schnellanleitung
- Befestigen Sie einen Motor an Kanal A und einen anderen an Kanal B-Schraubklemmen.
- Folgen Sie den gleichen Schnellschritten wie im Abschnitt Kanal A oben (App erstellen, Skizze einfügen, Bibliotheken installieren, hochladen).
- Die Skizze durchläuft Muster für beide-vorwärts, beide-rückwärts und entgegengesetzte Richtung.
Linux + MCU Bridge-Programmierung
Das Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, führt Debian Linux aus) und die MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren mittels RPC über die Arduino_RouterBridge-Bibliothek — niemals über rohe serielle Anschlüsse.
- Das Motor Shield ist mit der MCU (STM32) verbunden — Richtungs-, PWM- und Bremsen-Pins sind alle auf dem Arduino UNO Q-Header, gesteuert durch die STM32.
- Die MPU kann das Motor Shield nicht direkt steuern — sie muss eine Funktion auf der MCU über Bridge.call() aufrufen, um vorwärts, rückwärts oder zu bremsen.
- Die MPU hat Wi-Fi — da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie Telegram-Befehle empfangen und den Motor fernsteuern.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe()-Funktionen auf der MCU-Seite auf (da motor.run() und motor.brake() Hardware-APIs verwenden)
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet — öffnen Sie diese niemals direkt
Kurz gesagt: MPU sendet Befehl → MCU steuert Motor Shield → Motor Shield steuert Gleichstrommotor.
MCU-Skizze — Motor Shield-Steuerung mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) — Motor von Linux steuern:
- Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen ist, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
- ⚠️ Warnung: Öffnen Sie niemals direkt /dev/ttyHS1 (auf Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code — diese sind vom Arduino Router reserviert und der Zugriff würde die Bridge unterbrechen.
Schnellanleitung
- MCU-Skizze hochladen: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie die Bridge MCU-Skizze in sketch/sketch.ino ein, installieren Sie beide DIYables_DC_Motor- und Arduino_RouterBridge-Bibliotheken, und klicken Sie auf Ausführen.
- Python-Skript hinzufügen: Fügen Sie den Python-Code oben in die Python-Registerkarte der gleichen App ein.
- App ausführen: Klicken Sie auf Ausführen — Python durchläuft den Motor vorwärts, Bremse, rückwärts, Bremse automatisch.
- Konsole überprüfen: Öffnen Sie die Registerkarte Konsole → Unterregisterkarte MCU Monitor, um Motor-Statusmeldungen zu sehen.
App Lab Konsolenausgabe
Telegram-Integration
Steuern Sie den Gleichstrommotor von überall über Telegram ferngesteuert.
Wenn Sie noch keinen Telegram-Bot haben, lesen Sie So erstellen Sie einen Telegram-Bot, um Ihr Bot-Token zu erhalten, bevor Sie fortfahren.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt — keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits auf der STM32 hochgeladen und ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot zur Motorschild-Steuerung:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN mit dem Token, das Sie von @BotFather auf Telegram erhalten haben.
- Senden Sie /forward, um den Motor vorwärts zu drehen.
- Senden Sie /backward, um den Motor rückwärts zu drehen.
- Senden Sie /brake, um den Motor zu bremsen.
Schnellanleitung
- MCU-Skizze hochladen: Verwenden Sie die Bridge MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls noch nicht geschehen).
- Telegram-Skript einfügen: Kopieren Sie den Python-Code oben in die Python-Registerkarte Ihrer App in Arduino App Lab.
- Token einrichten: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr echtes Bot-Token.
- App ausführen: Klicken Sie auf Ausführen — der Bot beginnt, auf Telegram-Nachrichten zu lauschen.
- Testen Sie es: Senden Sie /forward — der Motor dreht sich. Senden Sie /brake — er hält hart an. Senden Sie /backward — er dreht sich rückwärts.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie sich auf die Anleitung in der Arduino Uno Q - OpenClaw Anleitung beziehen
Anwendungs-/Projektideen
- Ferngesteuerter Roboterfahrer: Verwenden Sie Kanal A und Kanal B zusammen, um einen Zweimotor-Differenzialantrieb-Roboter zu bauen, der über Telegram gesteuert wird
- Automatisiertes Förderband: Fahren Sie einen Kanal A-Motor vorwärts oder rückwärts nach Zeitplan mit Cron des Linux-Systems der MPU
- Motorisierter Kameraschieber: Verwenden Sie präzise PWM-Geschwindigkeitsregelung, um eine Kamera sanft entlang einer Schiene zu bewegen
- Drehteller mit zwei Achsen: Steuern Sie zwei Motoren gleichzeitig für Schwenk- und Neigungsbewegung über Telegram-Befehle
- intelligente Lüftersteuerung: Stellen Sie die Lüftergeschwindigkeit ferngesteuert ein — legen Sie langsam, mittel oder volle Geschwindigkeit von Telegram fest
Fordern Sie sich selbst heraus
- Einfach: Fügen Sie einen Telegram-Befehl /status hinzu, der den aktuellen Motorstatus (vorwärts, rückwärts oder bremsend) meldet
- Mittel: Fügen Sie einen Telegram-Befehl /speed <0-255> hinzu, um die PWM-Geschwindigkeit vor dem Drehen einzustellen
- Erweitert: Steuern Sie Kanal A und Kanal B unabhängig von Telegram mit Befehlen wie /a forward, /b backward, /a brake
Arduino UNO Q DC Motor Shield - Vollständige Demo
Das Folgende ist ein Schritt-für-Schritt-Video-Tutorial, das alle Beispiele des DC Motor Shield zeigt: