Arduino UNO Q - RS422
Verwenden Sie RS422-Serienkommunikation mit dem Arduino UNO Q und einem TTL-zu-RS422-Modul. RS422 verwendet differentielle Signalisierung über zwei verdrillte Adernpaare — ein Paar zum Senden, eines zum Empfangen — und ermöglicht Vollduplexkommunikation auf lange Distanzen bis zu 1200 m mit hoher Störfestigkeit. Mit Bridge und Telegram können Sie RS422-Daten remote aus Python oder Ihrem Telefon senden und empfangen.
In diesem Tutorial lernen Sie:
- Wie RS422-Kommunikation funktioniert und warum ein TTL-zu-RS422-Modul erforderlich ist
- Wie Sie das TTL-zu-RS422-Modul mit dem Arduino UNO Q verbinden
- Wie Sie Daten über RS422 auf Arduino UNO Q senden und empfangen
- Wie Sie Bridge verwenden, um RS422-Kommunikation von Python aus auf Arduino UNO Q zu steuern
- Wie Sie RS422-Daten über Telegram auf Arduino UNO Q senden und empfangen
- Wie Sie OpenClaw auf Arduino UNO Q mit RS422 verwenden

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das TTL zu RS422 Modul
Die Arduino UNO Q MCU kommuniziert über UART mit TTL-Logikpegeln (3,3 V). Um mit RS422-kompatiblen Industriegeräten, Kameras oder CNC-Steuerungen über lange Distanzen zu kommunizieren, müssen Sie TTL in den RS422-Differenzialstandard umwandeln. Das TTL-zu-RS422-Modul führt diese Konvertierung in beide Richtungen durch.
RS422-Schlüsselmerkmale:
- Vollduplexkommunikation (separate TX und RX Paare)
- Lange Distanz: bis zu 1200 Meter
- Hohe Störfestigkeit durch differentielle Signalisierung
- Punkt-zu-Punkt oder begrenzte Multi-Drop (bis zu 10 Empfänger pro Treiber)

Pinbelegung
- TTL-Schnittstelle (verbunden mit Arduino UNO Q MCU):
- VCC: Stromversorgung — mit 3,3 V verbinden
- GND: Masse
- RXD: Dateneingabe — mit MCU TX-Anschluss (D6) verbinden
- TXD: Datenausgabe — mit MCU RX-Anschluss (D7) verbinden
- RS422-Schnittstelle:
- A (R+): RX+ — mit Remote TX+ (T+/Y Anschluss) verbinden
- B (R-): RX− — mit Remote TX- (T-/Z Anschluss) verbinden
- Y (T+): TX+ — mit Remote RX+ (R+/A Anschluss) verbinden
- Z (T-): TX− — mit Remote RX- (R-/B Anschluss) verbinden
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| TTL-zu-RS422 Modul Anschluss | Arduino UNO Q MCU Anschluss | Bemerkung |
|---|---|---|
| VCC | 3,3V | |
| GND | GND | |
| RXD | D6 (MCU TX) | |
| TXD | D7 (MCU RX) |
Verbinden Sie A/B (R+/R-) und Y/Z (T+/T-) mit den entsprechenden Anschlüssen Ihres RS422-Geräts oder eines USB-zu-RS422-Adapters zum Testen am PC.
Programmierung für RS422
- Fügen Sie SoftwareSerial ein und erstellen Sie ein RS422-Serialobjekt:
- Lesen Sie eingehende RS422-Daten:
- Senden Sie Daten über RS422:
Arduino UNO Q Code
Schnelle Schritte
Zum ersten Mal mit Arduino UNO Q? Folgen Sie zuerst dem Tutorial Erste Schritte mit Arduino UNO Q.
- Verbinden: Verdrahten Sie das TTL-zu-RS422-Modul mit der Arduino UNO Q MCU wie im Verdrahtungsdiagramm gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App (Neue App erstellen).

- Geben Sie der App einen Namen, zum Beispiel: RS422
- Klicken Sie auf Create (Erstellen), um zu bestätigen.

- Fügen Sie den Sketch ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Hochladen: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.

Testen
So testen Sie RS422-Kommunikation:
- Verbinden Sie die T+/T- und R+/R- Anschlüsse mit einem USB-zu-RS422-Adapter:

- Stellen Sie die Baudrate auf 9600 ein und wählen Sie den richtigen COM-Anschluss.
- Geben Sie einen beliebigen Text ein und senden Sie ihn. Der Arduino UNO Q wird ihn zurückgeben — Sie sollten die zurückgegebenen Daten im Terminal sehen.
Bridge: Linux + MCU
In diesem Abschnitt erfahren Sie, wie Sie RS422-Daten von der Linux-Seite (Python) über Bridge senden und empfangen:
- Das TTL-zu-RS422-Modul ist über SoftwareSerial mit der MCU verbunden — die MCU verwaltet alle seriellen Ein-/Ausgaben
- Die MPU kann SoftwareSerial nicht direkt verwenden — sie ruft Bridge-Funktionen auf, um RS422-Daten zu senden/empfangen
- Die MPU hat Wi-Fi — mit vollständiger Debian Linux können Sie RS422-Daten an Telegram oder Web-Services weiterleiten
- Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
- ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router — öffnen Sie sie nie in Benutzercode
MCU-Code (Bridge)
Python-Code (Bridge)
Schnelle Schritte
- Verbinden: Verdrahten Sie das TTL-zu-RS422-Modul mit dem Arduino UNO Q wie oben gezeigt.
- Öffnen Sie Arduino App Lab und erstellen Sie eine neue App mit dem Namen RS422Bridge.
- Fügen Sie den MCU-Sketch in sketch/sketch.ino ein.
- Fügen Sie den Python-Code in die Python-Datei ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Hochladen: Klicken Sie auf die Run-Schaltfläche. Python sendet eine Nachricht über RS422 und liest alle zurückgegebenen Daten.

App Lab Konsole Ausgabe
Telegram
Senden und empfangen Sie RS422-Daten über Telegram — leiten Sie Nachrichten von Präzisions-Industrieausrüstung an Ihr Telefon weiter oder senden Sie Befehle von Telegram an ein RS422-Gerät.
MCU-Sketch: Behalten Sie den gleichen MCU-Sketch aus dem vorherigen Bridge-Abschnitt.
Python-Code (Telegram)
Schnelle Schritte
- Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihr tatsächliches Bot-Token von BotFather.
- Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
- Fügen Sie den Python-Code in die Python-Datei Ihrer App ein (behalten Sie den gleichen MCU-Sketch).
- Klicken Sie auf die Run-Schaltfläche — senden Sie /send Hello in Telegram, um Daten über RS422 zu übertragen.
App Lab Konsole Ausgabe
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial
Projektideen
Sie können viele nützliche Projekte mit RS422-Kommunikation und Arduino UNO Q erstellen:
- CNC-Maschinenmonitor: Verbinden Sie den Arduino UNO Q über RS422 mit einer CNC-Steuerung; die MCU liest Positions- und Statusmeldungen, und Python sendet Echtzeit-Updates an Telegram, wenn das Fräsen startet, pausiert oder abgeschlossen wird
- Hochgeschwindigkeits-Kameratrigger: Verwenden Sie RS422, um präzise Triggersignale an Industriekameras zu senden; Python bestimmt den Trigger-Zeitpunkt über Bridge und sendet den Befehl an die MCU, die den Trigger-Impuls über das RS422-Differenzialpaar überträgt
- Sensor-Array über lange Distanz: Verdrahten Sie RS422 über 500 m zu einer ferngesteuerten Umweltsensorstation; die MCU liest Sensordaten über RS422, und Python protokolliert Messwerte und sendet Telegram-Warnungen, wenn Werte Schwellenwerte überschreiten
- SPS-Status-Dashboard: Verbinden Sie sich mit dem RS422-Programmierport einer SPS, um Diagnosedaten zu lesen; Python formatiert die Daten als Statusbericht und sendet sie in regelmäßigen Abständen an Telegram
- Präzisions-Motion-Controller: Senden Sie Positionsbefehle von Telegram über Bridge an die MCU, die diese über RS422 an einen Servo-Treiber weiterleitet — ermöglicht Remote-Steuerung mit vollem Duplex einer Präzisions-Aktuator
Schließe dich selbst heraus
Fordern Sie sich selbst heraus
Bereit, RS422 auf Arduino UNO Q weiter auszuprobieren? Versuchen Sie diese Herausforderungen:
- Einfach: Fügen Sie einen /ping Telegram-Befehl hinzu, der eine feste Zeichenkette PING\n über RS422 sendet und die Antwort sofort mit get_received liest — nützlich zum Testen, ob das verbundene RS422-Gerät reaktiv ist.
- Mittel: Implementieren Sie ein Nachrichtenprotokoll: Python speichert die letzten 10 empfangenen RS422-Nachrichten in einer Python-Liste; ein /history Telegram-Befehl gibt alle gespeicherten Nachrichten als nummerierte Liste zurück — gibt Ihnen eine aktuelle Kommunikationshistorie von Ihrem Telefon.
- Fortgeschritten: Erstellen Sie ein vollständiges RS422-Duplex-Relais: Python verwaltet eine Schleife, die jeden 10 Sekunden eine Herzschlag-Zeichenkette über send_rs422 sendet, alle eingehenden Daten mit get_received liest und sie an Telegram weiterleitet — während Sie auch auf Telegram-Befehle hören, um benutzerdefinierte Nachrichten zu senden, erstellen Sie ein vollständiges bidirektionales RS422-zu-Telegram-Gateway.