Arduino Nano - RS485

In diesem Leitfaden tauchen wir in die Implementierung der RS485-Kommunikation mit dem Arduino Nano ein. Wir konzentrieren uns auf die folgenden Schlüsselaspekte:

Das Tutorial bietet auch Anweisungen sowohl für Hardware Serial als auch für SoftwareSerial.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×TTL-zu-RS485-Modul
1×Verbindungskabel
1×(Optional) USB-zu-RS485-Konverter
1×(Optional) USB to RS485 Cable
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

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 TTL-zu-RS485-Modul

Bei der seriellen Kommunikation am Arduino Nano mit Funktionen wie Serial.print(), Serial.read() und Serial.write() erfolgt die Datenübertragung über den TX-Pin, während der Empfang der Daten über den RX-Pin erfolgt. Diese Pins arbeiten auf TTL-Ebene und verarbeiten Signale mit begrenzter Reichweite. Daher ist es bei serieller Kommunikation über längere Entfernungen notwendig, das TTL-Signal in Standards wie RS232, RS485 oder RS422 umzuwandeln.

In diesem Tutorial befassen wir uns mit der Integration von RS485 (auch RS-485 genannt) in den Arduino Nano, indem wir ein TTL-zu-RS485-Modul verwenden. Dieses Modul ermöglicht die Umwandlung von TTL-Signalen in RS-485-Signale und umgekehrt, wodurch eine robuste Kommunikation über große Entfernungen ermöglicht wird.

Pinbelegung

Das RS485-zu-TTL-Modul hat zwei Schnittstellen:

  • Die TTL-Schnittstelle (an den Arduino Nano angeschlossen) umfasst 4 Pins
    • VCC-Pin: Versorgungspin, muss mit VCC verbunden werden (5V oder 3,3V)
    • GND-Pin: Versorgungspin, muss mit GND verbunden werden (0V)
    • RXD-Pin: Datenpin, muss mit einem TX-Pin des Arduino Nano verbunden werden
    • TXD-Pin: Datenpin, muss mit einem RX-Pin des Arduino Nano verbunden werden
  • Die RS485-Schnittstelle umfasst die folgenden Pins:
    • D+ (A oder TR+) Pin: Dieser Pin ermöglicht die Datenkommunikation.
    • D- (B oder TR-) Pin: Dieser Pin dient der Datenübertragung.
    • GND-Pin: Obwohl optional, wird dringend empfohlen, diesen Pin einzubauen, um Störgeräusche zu reduzieren und eine optimale Leistung sicherzustellen.
    RS-485-Modul Pinbelegung
    image source: diyables.io

Verdrahtungsdiagramm

  • Schaltplan bei Verwendung von Hardware-Serial
Arduino Nano TTL zu RS-485 Verdrahtungsdiagramm

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

  • Schaltplan bei Verwendung von Software-Serial
Arduino Nano RS-485 zu TTL Verdrahtungsdiagramm

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Wie man Arduino Nano programmiert, um das RS485-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> #define RX_PIN 2 #define TX_PIN 3 // Definiere die SoftwareSerial-Objekte und deren Pins SoftwareSerial rs485(RX_PIN, TX_PIN);

Arduino Nano Code für Hardware-Seriell

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-rs485 */ 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 Nano-Code für Software-Serial

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

Tests

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

  • Verbinden Sie das Arduino Nano über ein RS485-zu-USB-Kabel mit Ihrem PC wie unten:
Arduino Nano RS485 zur PC-Kommunikation
  • Installiere ein serielles Terminalprogramm wie Tera Term oder PuTTY
  • Öffne das serielle Terminalprogramm und konfiguriere die seriellen Parameter (COM-Port, Baudrate...)
  • Gib im seriellen Terminal einige Daten ein, um sie an den Arduino Nano zu senden.
  • Wenn es erfolgreich ist, siehst du 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!