Arduino RS-422

In diesem Leitfaden werden wir darauf eingehen, wie man die RS422-Kommunikation mit Arduino einrichtet. Wir werden die folgenden Schritte gründlich durchgehen:

Das Tutorial enthält auch Anleitungen für sowohl Hardware Serial als auch SoftwareSerial.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×TTL-zu-RS422-Modul
1×Verbindungskabel
1×(Optional) RS422-zu-USB-Kabel
1×(Empfohlen) Schraubklemmenblock-Shield für 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 STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
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 das TTL-zu-RS422-Modul

Bei der Nutzung serieller Kommunikation auf dem Arduino über Funktionen wie Serial.print(), Serial.read() und Serial.write() sendet der Arduino Daten über den TX-Pin und empfängt Daten über den RX-Pin. Diese Pins arbeiten auf TTL-Ebene, was bedeutet, dass die von ihnen verarbeiteten Signale eine begrenzte Reichweite haben. Daher ist es für die serielle Kommunikation über längere Entfernungen erforderlich, das TTL-Signal in RS232-, RS422- oder RS422-Signalstandards umzuwandeln.

In diesem Tutorial befassen wir uns mit der Nutzung von RS422 (auch bekannt als RS-422) mit Arduino, indem wir ein TTL-zu-RS422-Modul verwenden. Dieses Modul ermöglicht die Umwandlung von TTL-Signalen in RS422-Signale und umgekehrt.

Pinbelegung

Das RS-422-zu-TTL-Modul hat zwei Schnittstellen:

  • Die TTL-Schnittstelle (mit Arduino verbunden) umfasst 4 Pins:
  • VCC-Pin: Stromversorgungs-Pin, muss an VCC (5 V oder 3,3 V) angeschlossen werden.
  • GND-Pin: Massepin, muss mit GND (0 V) verbunden werden.
  • RXD-Pin: Datenpin, muss mit dem TX-Pin des Arduino verbunden werden.
  • TXD-Pin: Datenpin, muss mit dem RX-Pin des Arduino verbunden werden.
  • Die RS422-Schnittstelle umfasst folgende Pins:
  • A (R+) Pin: RX+-Pin des Moduls, verbinden Sie diesen Pin mit dem TX+-Pin (T+ oder Y-Pin) des anderen RS422-Geräts.
  • B (R-) Pin: RX- Pin des Moduls, verbinden Sie diesen Pin mit dem TX- Pin (T- oder Z-Pin) des anderen RS422-Geräts.
  • Y (T+) Pin: TX+-Pin des Moduls, verbinden Sie diesen Pin mit dem RX+-Pin (R+ oder A-Pin) des anderen RS422-Geräts.
  • Z (T-) Pin: TX- Pin des Moduls, verbinden Sie diesen Pin mit dem RX- Pin (R- oder B-Pin) des anderen RS422-Geräts.
Pinbelegung des RS-422-Moduls
image source: diyables.io

Verdrahtungsdiagramm

  • Schaltplan, wenn Hardware-Serial verwendet wird
Arduino TTL zu RS-422-Verdrahtungsdiagramm

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

  • Verdrahtungsdiagramm bei Verwendung von Software-Serial
Arduino RS-422 zu TTL Verdrahtungsdiagramm

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

So programmieren Sie Arduino, um das RS-422-Modul zu verwenden.

  • Initialisiert die serielle Schnittstelle:
Serial.begin(9600);
  • Wenn Sie SoftwareSerial verwenden, müssen Sie die Bibliothek einbinden und ein SoftwareSerial-Objekt deklarieren:
#include <SoftwareSerial.h> // Definieren Sie die SoftwareSerial-Objekte und deren Pins SoftwareSerial rs422(6, 7); // RX: 6, TX: 7

Arduino-Code für die serielle Hardware-Schnittstelle

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-rs422 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial.available()) { char data = Serial.read(); // read the received character Serial.print(data); // echo back to data to the sender } }

Arduino-Code für Software Serial

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-rs422 */ #include <SoftwareSerial.h> // define the SoftwareSerial object and their pins SoftwareSerial rs422(6, 7); // RX: 6, TX: 7 void setup() { // start communication with baud rate 9600 rs422.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on rs422 if (rs422.available()) { char data = rs422.read(); // read the received character rs422.print(data); // echo back to data to the sender } }

Testen

Sie können einen Test durchführen, indem Sie Daten von Ihrem PC über RS-422 an den Arduino senden und umgekehrt. Um dies zu tun, befolgen Sie die untenstehenden Schritte:

  • Schließen Sie den Arduino über ein RS-422-zu-USB-Kabel an Ihren PC an, wie unten:
Arduino RS-422-Kommunikation mit dem PC
  • Installieren Sie ein serielles Terminalprogramm wie Tera Term oder PuTTY
  • Öffnen Sie das serielle Terminalprogramm und konfigurieren Sie die seriellen Parameter (COM-Port, Baudrate ...)
  • Tippen Sie einige Daten in das serielle Terminal ein, um sie an Arduino zu senden.
  • Wenn dies erfolgreich ist, sehen Sie die Echo-Daten im seriellen Terminal.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

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