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:

Arduino UNO Q DC Motor Shield

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino Uno Q
1×Motor Shield für Arduino
1×Gleichstrommotor
1×Stromversorgung (z.B. 9V-Stromadapter)
1×DC-Stromstecker
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

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.

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.

Arduino UNO Q DC Motor Shield Schaltplan

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:

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-dc-motor-shield */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); bool directionState = false; void setup() { motor.begin(); } void loop() { directionState = !directionState; int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD; motor.run(direction, 30); delay(2000); motor.brake(); delay(2000); }

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.
Neue App in Arduino App Lab auf Arduino UNO Q 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.
Arduino App Lab App-Ordner und Dateien auf Arduino UNO Q
  • Suchen Sie die Datei sketch/sketch.ino — hier fügen Sie die MCU-Skizze ein.
  • Skizze einfügen: Kopieren Sie den MCU-Code oben und fügen Sie ihn in die Skizzendatei ein. Behalten Sie andere Dateien wie Standard.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for DIYables_DC_Motor created by DIYables.io and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    DIYables_DC_Motor DIYables.io

    Easy-to-use library for controlling DC motors via the Arduino Motor Shield Rev3 (L298P). Supports both Channel A and Channel B with direction control, PWM speed, brake, and current sensing. Custom pin assignments also supported.

    1.0.0
    Install
    More Info
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Hochladen: Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab, um zu kompilieren und auf die STM32 hochzuladen.
    Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab auf Arduino UNO Q
    • 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.

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-dc-motor-shield */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_B); bool directionState = false; void setup() { motor.begin(); } void loop() { directionState = !directionState; int direction = directionState ? MOTOR_FORWARD : MOTOR_BACKWARD; motor.run(direction, 30); delay(2000); motor.brake(); delay(2000); }

    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.

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-dc-motor-shield */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motorA(MOTOR_CH_A); DIYables_DC_Motor motorB(MOTOR_CH_B); void setup() { motorA.begin(); motorB.begin(); } void loop() { // Both motors forward motorA.run(MOTOR_FORWARD, 100); motorB.run(MOTOR_FORWARD, 100); delay(2000); // Brake both motorA.brake(); motorB.brake(); delay(1000); // Both motors backward motorA.run(MOTOR_BACKWARD, 100); motorB.run(MOTOR_BACKWARD, 100); delay(2000); // Brake both motorA.brake(); motorB.brake(); delay(1000); // Opposite directions motorA.run(MOTOR_FORWARD, 100); motorB.run(MOTOR_BACKWARD, 100); delay(2000); // Brake both motorA.brake(); motorB.brake(); delay(1000); }

    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:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-dc-motor-shield */ #include "Arduino_RouterBridge.h" #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); void motor_forward() { motor.run(MOTOR_FORWARD, 200); Monitor.println("Motor: Forward"); } void motor_backward() { motor.run(MOTOR_BACKWARD, 200); Monitor.println("Motor: Backward"); } void motor_brake() { motor.brake(); Monitor.println("Motor: Brake"); } void setup() { Bridge.begin(); Monitor.begin(); motor.begin(); motor.brake(); Bridge.provide_safe("forward", motor_forward); Bridge.provide_safe("backward", motor_backward); Bridge.provide_safe("brake", motor_brake); Monitor.println("DC Motor Shield Bridge ready"); } void loop() {}

    Python-Skript (Arduino App Lab) — Motor von Linux steuern:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-dc-motor-shield */ from arduino.app_utils import * import time def loop(): print("Motor spinning forward") Bridge.call("forward") time.sleep(3) print("Motor braking") Bridge.call("brake") time.sleep(1) print("Motor spinning backward") Bridge.call("backward") time.sleep(3) print("Motor braking") Bridge.call("brake") time.sleep(1) App.run(user_loop=loop)
    • 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

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    DC Motor Shield Bridge ready Motor: Forward Motor: Brake Motor: Backward Motor: Brake

    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:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-dc-motor-shield */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/forward": Bridge.call("forward") send_message(chat_id, "Motor spinning forward.") elif text == "/backward": Bridge.call("backward") send_message(chat_id, "Motor spinning backward.") elif text == "/brake": Bridge.call("brake") send_message(chat_id, "Motor braking.") else: send_message(chat_id, "Commands:\n/forward — spin motor forward\n/backward — spin motor backward\n/brake — brake motor") time.sleep(1) App.run(user_loop=loop)
    • 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

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /forward [2026-04-29 12:00:01] Motor spinning forward. [2026-04-29 12:02:10] Telegram: /backward [2026-04-29 12:02:10] Motor spinning backward. [2026-04-29 12:04:05] Telegram: /brake [2026-04-29 12:04:05] Motor braking.
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /forward
    10:15 AM ✓✓
    Motor spinning forward.
    10:16 AM
    /backward
    10:17 AM ✓✓
    Motor spinning backward.
    10:18 AM
    /brake
    10:19 AM ✓✓
    Motor braking.
    10:20 AM

    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:

    Funktionsreferenzen

    Verwandte Tutorials

    ※ 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!