Arduino UNO Q - Aktuator

In dieser Anleitung erfahren Sie, wie Sie einen linearen Aktuator mit Arduino UNO Q und dem Motor Shield Rev3 steuern. Sie werden lernen:

Dieses Tutorial behandelt lineare Aktuatoren ohne Rückmeldung. Für die Positionssteuerung siehe Arduino UNO Q - Aktuator mit Rückmeldung.

Arduino UNO Q Aktuator

Hardware erforderlich

1×Arduino UNO Q
1×USB-Kabel für Arduino Uno Q
1×Linearer Aktuator
1×Motor Shield für Arduino
1×12V-Netzteil
1×DC-Stromanschluss
1×Jumper-Drähte
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.

Über linearen Aktuator

Linearer Aktuator Ausfahren Einfahren

Ein linearer Aktuator wandelt elektrische Energie in lineare Bewegung um. Er kann aus- und einfahren, was ihn zum Drücken, Ziehen, Heben oder Klemmen nützlich macht.

Pinbelegung des linearen Aktuators

Ein linearer Aktuator hat zwei Drähte:

  • Positiver Draht (oft rot)
  • Negativer Draht (oft schwarz)
Pinbelegung des linearen Aktuators

Wie es funktioniert

Für einen 12-V-Aktuator:

  • Verbinden Sie 12V mit positiv, GND mit negativ → Aktuator fährt aus vollständig mit voller Geschwindigkeit, bis er sein Limit erreicht.
  • Verbinden Sie 12V mit negativ, GND mit positiv → Aktuator fährt ein vollständig mit voller Geschwindigkeit, bis er sein Limit erreicht.
  • Verbinden Sie beide Drähte mit GND → Aktuator stoppt.

Der Motor Shield Rev3 übernimmt diese Polaritätswechsel für Sie. Die DIYables_DC_Motor-Bibliothek steuert Richtung und Geschwindigkeit — verwenden Sie motor.run(MOTOR_FORWARD, 255), um auszufahren, und motor.run(MOTOR_BACKWARD, 255), um einzufahren bei voller Geschwindigkeit. Rufen Sie motor.brake() auf, um zu stoppen.

So steuern Sie Aktuatoren Ausfahren/Einfahren

※ Notiz:

Im Gegensatz zu normalen Gleichstrommotoren können lineare Aktuatoren ihre Position auch ohne Stromversorgung halten, wenn sie eine Last tragen.

Wenn Sie nicht vertraut sind mit dem Motor Shield Rev3 (Pinbelegung, Funktionsweise und Programmierung), siehe zuerst das Tutorial Arduino UNO Q - DC Motor Shield.

Schaltplan

Arduino UNO Q Aktuator Motor Shield Schaltplan

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

MCU-Code

Der Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (übernimmt Echtzeit-Hardwaresteuerung) und die Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur der STM32 MCU programmiert — die Linux-Seite bleibt inaktiv. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.

Der Code unten fährt den Aktuator 20 Sekunden lang aus und fährt ihn dann 20 Sekunden lang ein, wiederholt:

/* * 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-actuator */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); void setup() { motor.begin(); } void loop() { // extend the actuator at full speed motor.run(MOTOR_FORWARD, 255); delay(20000); // actuator stops automatically at its limit // retract the actuator at full speed motor.run(MOTOR_BACKWARD, 255); delay(20000); // actuator stops automatically at its limit }

Schnellschritte

  • Zum ersten Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
  • Schild stapeln: Drücken Sie das Motor Shield Rev3 fest auf die Arduino UNO Q Header. Verbinden Sie die Aktuatordrähte mit den Schraubklemmen des Kanals A. Verbinden Sie die 12V-Stromversorgung mit den Schraubklemmen des Schild-Netzteils.
  • Verbinden: Schließen Sie das Arduino UNO Q mit einem USB-C-Kabel an Ihren Computer an.
  • Arduino App Lab öffnen: Starten Sie Arduino App Lab und warten Sie, bis es Ihr Arduino UNO Q erkennt.
  • 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_Actuator
  • Klicken Sie auf Erstellen zur Bestätigung.
  • Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert wurden.
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 als Standard bei.
    • 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
    • Hochladen: Klicken Sie die Run-Schaltfläche in Arduino App Lab, um zu kompilieren und zum STM32 hochzuladen.
    Klicken Sie auf Run-Schaltfläche in Arduino App Lab auf Arduino UNO Q
    • Test: Der Aktuator sollte vollständig ausfahren, pausieren, dann vollständig einfahren, wiederholt.

    Linux + MCU Bridge-Programmierung

    Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, führt Debian Linux aus) und der MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren mit RPC über die Arduino_RouterBridge-Bibliothek — nie über Raw-Serienports.

    • Der Motor Shield Rev3 und Aktuator werden vom MCU (STM32) gesteuert — die DIYables_DC_Motor-Bibliothek treibt den Aktuator über Kanal A an.
    • Die MPU kann den Aktuator nicht direkt steuern — sie ruft Bridge.call("actuator_extend"), Bridge.call("actuator_retract") oder Bridge.call("actuator_stop") auf dem MCU auf.
    • Die MPU hat Wi-Fi — da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie Telegram-Befehle akzeptieren, um den Aktuator ferngesteuert zu steuern.
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe() 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 sie nie direkt.

    Kurz gesagt: MPU sendet Aktuator-Befehl → MCU treibt Motor Shield an → Aktuator fährt aus oder ein.

    MCU-Skizze — Aktuatorsteuerung mit Bridge:

    /* * 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-actuator */ #include "Arduino_RouterBridge.h" #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); void actuator_extend() { motor.run(MOTOR_FORWARD, 255); Monitor.println("Actuator: EXTENDING"); } void actuator_retract() { motor.run(MOTOR_BACKWARD, 255); Monitor.println("Actuator: RETRACTING"); } void actuator_stop() { motor.brake(); Monitor.println("Actuator: STOPPED"); } void setup() { Bridge.begin(); Monitor.begin(); motor.begin(); motor.brake(); Bridge.provide_safe("actuator_extend", actuator_extend); Bridge.provide_safe("actuator_retract", actuator_retract); Bridge.provide_safe("actuator_stop", actuator_stop); Monitor.println("Actuator Bridge ready"); } void loop() {}

    Python-Skript (Arduino App Lab) — Ausfahren, Pause, Einfahren, Pause-Zyklus:

    /* * 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-actuator */ from arduino.app_utils import * import time def loop(): Bridge.call("actuator_extend") time.sleep(20) Bridge.call("actuator_stop") time.sleep(1) Bridge.call("actuator_retract") time.sleep(20) Bridge.call("actuator_stop") 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 wird, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
    • ⚠️ Warnung: Öffnen Sie /dev/ttyHS1 (unter Linux) nie direkt oder verwenden Sie Serial1 (auf MCU) in Ihrem Code — diese sind vom Arduino Router reserviert und der Zugriff darauf unterbricht die Bridge.

    Schnellschritte

    • 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 sowohl die Bibliotheken DIYables_DC_Motor und Arduino_RouterBridge, und klicken Sie Run.
    • Python-Skript hinzufügen: Fügen Sie den Python-Code oben in die Python-Registerkarte derselben App ein.
    • App ausführen: Klicken Sie Run — Python fährt den Aktuator in einem Zyklus aus und ein.
    • Konsole überprüfen: Öffnen Sie die Registerkarte Konsole → MCU Monitor Unterregisterkarte, um den Aktuatorzustand anzuzeigen.

    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
    Actuator Bridge ready Actuator: EXTENDING Actuator: STOPPED Actuator: RETRACTING Actuator: STOPPED

    Telegram-Integration

    Steuern Sie den Aktuator ferngesteuert über Telegram mit /extend, /retract und /stop Befehlen.

    Wenn Sie noch keinen Telegram-Bot haben, siehe 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 dem STM32 hochgeladen und läuft, bevor Sie fortfahren.

    Python-Skript (Arduino App Lab) — Telegram-Bot zur Aktuatorsteuerung:

    /* * 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-actuator */ 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 == "/extend": Bridge.call("actuator_extend") send_message(chat_id, "Actuator is EXTENDING.") elif text == "/retract": Bridge.call("actuator_retract") send_message(chat_id, "Actuator is RETRACTING.") elif text == "/stop": Bridge.call("actuator_stop") send_message(chat_id, "Actuator STOPPED.") else: send_message(chat_id, "Commands:\n/extend — extend actuator\n/retract — retract actuator\n/stop — stop actuator") time.sleep(0.5) App.run(user_loop=loop)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
    • Senden Sie /extend, /retract oder /stop, um den Aktuator zu steuern.

    Schnellschritte

    • MCU-Skizze hochladen: Verwenden Sie die Bridge MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, wenn noch nicht geschehen).
    • Telegram-Skript einfügen: Kopieren Sie den Python-Code oben in die Python-Registerkarte Ihrer App in Arduino App Lab.
    • Ihr Token festlegen: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
    • App ausführen: Klicken Sie Run — der Bot beginnt, auf Telegram-Nachrichten zu warten.
    • Testen Sie es: Senden Sie /extend, /retract und /stop, um den Aktuator zu steuern.

    App Lab Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /extend [2026-04-29 12:00:01] Actuator is EXTENDING. [2026-04-29 12:00:15] Telegram: /stop [2026-04-29 12:00:15] Actuator STOPPED. [2026-04-29 12:01:00] Telegram: /retract [2026-04-29 12:01:00] Actuator is RETRACTING.
    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
    /extend
    10:15 AM ✓✓
    Actuator is EXTENDING.
    10:16 AM
    /stop
    10:17 AM ✓✓
    Actuator STOPPED.
    10:18 AM
    /retract
    10:19 AM ✓✓
    Actuator is RETRACTING.
    10:20 AM

    OpenClaw-Integration

    Sie können den OpenClaw an dieses Tutorial anpassen, indem Sie die Anleitung unter Arduino Uno Q - OpenClaw Tutorial befolgen.

    Anwendungs-/Projektideen

    • Automatisiertes Tor: Ausfahren zum Öffnen und Einfahren zum Schließen eines physischen Tors
    • Höhenverstellbarer Schreibtisch: Kontrollieren Sie die Schreibtischhöhe mit Telegram-Befehlen
    • Solar-Panel-Tracker: Neigen Sie ein Solarpanel mit einem bewegungsgesteuerten Aktuator zur Sonne
    • Kamera-Slider: Fahren Sie eine Kamera auf einem linearen Schienensystem für sanfte Videoaufnahmen

    Teste dich selbst

    • Einfach: Ändern Sie die Aus- und Einfahrzeit von 20 Sekunden auf 10 Sekunden
    • Mittel: Fügen Sie einen /stop_after_extend Telegram-Befehl hinzu, der ausfährt, 10 Sekunden wartet, dann automatisch stoppt
    • Erweitert: Kombinieren Sie mit einem Endschalter, um zu erkennen, wenn der Aktuator seine volle Ausdehnung erreicht

    Funktionsreferenzen

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