Arduino Nano - RS422

In deze handleiding verkennen we het proces om RS422-communicatie op te zetten met een Arduino Nano. We behandelen de volgende stappen uitgebreid:

De tutorial bevat instructies voor zowel Hardware Serial als SoftwareSerial.

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×TTL naar RS422 Module
1×Jumperdraden
1×(Optioneel) RS422 naar USB Kabel
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de TTL naar RS422 Module

Bij het gebruik van seriële communicatie op de Arduino Nano met functies zoals Serial.print(), Serial.read() en Serial.write(), vindt datatransmissie plaats via de TX-pin terwijl dat ontvangst plaatsvindt via de RX-pin. Deze pinnen werken op TTL-niveau, wat betekent dat ze signalen met een beperkt bereik verwerken. Daarom is het bij seriële communicatie over langere afstanden noodzakelijk om het TTL-signaal om te zetten naar standaarden zoals RS232, RS422 of RS485.

In deze handleiding onderzoeken we de integratie van RS422 (ook wel RS-422 genoemd) met de Arduino Nano, gerealiseerd via het gebruik van een TTL naar RS422 module. Deze module zorgt voor de conversie van TTL-signalen naar RS422-signalen en andersom.

Pinout

De RS422 naar TTL module heeft twee interfaces:

  • De TTL-interface (verbonden met Arduino Nano) omvat 4 pinnen
    • VCC pin: voedingspin, moet verbonden worden met VCC (5V of 3,3V)
    • GND pin: aardingspin, moet verbonden worden met GND (0V)
    • RXD pin: datapin, moet verbonden worden met de TX-pin van de Arduino Nano
    • TXD pin: datapin, moet verbonden worden met de RX-pin van de Arduino Nano
  • De RS422-interface bestaat uit de volgende pinnen:
    • A (R+) pin: RX+ pin van de module, verbind deze pin met de TX+ pin (T+ of Y pin) van het andere RS422-apparaat
    • B (R-) pin: RX- pin van de module, verbind deze pin met de TX- pin (T- of Z pin) van het andere RS422-apparaat
    • Y (T+) pin: TX+ pin van de module, verbind deze pin met de RX+ pin (R+ of A pin) van het andere RS422-apparaat
    • Z (T-) pin: TX- pin van de module, verbind deze pin met de RX- pin (R- of B pin) van het andere RS422-apparaat
    RS-422 module Pinout
    image source: diyables.io

Bedradingsschema

  • Bedradingsschema bij gebruik van hardware serial
Arduino Nano TTL naar RS422 Bedradingsschema

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema bij gebruik van software serial
Arduino Nano RS-422 naar TTL Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe Arduino Nano te programmeren voor gebruik van de RS422 module

  • Initialiseer de Serial interface:
Serial.begin(9600);
  • Als u SoftwareSerial gebruikt, moet u de bibliotheek includeren en een SoftwareSerial object declareren:
#include <SoftwareSerial.h> #define RX_PIN 3 #define TX_PIN 2 // Definieer de SoftwareSerial objecten en hun pinnen SoftwareSerial rs422(RX_PIN, TX_PIN);

Arduino Nano Code voor Hardware Serial

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-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 Nano Code voor Software Serial

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-rs422 */ #include <SoftwareSerial.h> #define RX_PIN 3 #define TX_PIN 2 // define the SoftwareSerial object and their pins SoftwareSerial rs422(RX_PIN, TX_PIN); 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

U kunt een test uitvoeren door data te verzenden van uw pc naar Arduino Nano via RS-422 en andersom. Volg hiervoor de onderstaande stappen:

  • Verbind de Arduino Nano met uw pc via een RS422-naar-USB kabel zoals hieronder:
Arduino Nano RS422 naar PC communicatie
  • Installeer een seriële terminalprogramma zoals Tera Term of PuTTY
  • Open het seriële terminalprogramma en stel de seriële parameters in (COM-poort, baudrate, etc.)
  • Typ wat data in de seriële terminal om deze naar de Arduino Nano te verzenden
  • Bij succes ziet u de ontvangen data terug in de seriële terminal (echo)

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten over het gebruik van RS422 met Arduino Nano en helpt u met praktische implementatie.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!