Arduino Nano - RS485

In deze handleiding verdiepen we ons in de implementatie van RS485-communicatie met de Arduino Nano. We richten ons op de volgende belangrijke aspecten:

De tutorial behandelt ook 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 RS485 Module
1×Jumperdraden
1×(Optioneel) USB naar RS485 Converter
1×(Optioneel) USB naar RS485 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 TTL naar RS485 Module

Bij het gebruik van seriële communicatie op de Arduino Nano met functies zoals Serial.print(), Serial.read() en Serial.write(), vindt de datatransmissie plaats via de TX-pin, terwijl de data-ontvangst via de RX-pin verloopt. Deze pinnen werken op TTL-niveau, waarmee signalen met een beperkte afstand worden afgehandeld. Daarom is het voor seriële communicatie over langere afstanden noodzakelijk om het TTL-signaal om te zetten naar standaarden zoals RS232, RS485 of RS422.

In deze tutorial behandelen we de integratie van RS485 (ook wel RS-485 genoemd) met de Arduino Nano door gebruik te maken van een TTL naar RS485 module. Deze module maakt de conversie van TTL-signalen naar RS485-signalen en omgekeerd mogelijk, waardoor robuuste communicatie over lange afstanden wordt gerealiseerd.

Pinout

De RS485 naar TTL module heeft twee interfaces:

  • De TTL-interface (verbonden met Arduino Nano) bevat 4 pinnen
    • VCC pin: voedingspin, moet verbonden worden met VCC (5V of 3,3V)
    • GND pin: grondpin, moet verbonden worden met GND (0V)
    • RXD pin: datapin, moet verbonden worden met de TX-pin van Arduino Nano
    • TXD pin: datapin, moet verbonden worden met de RX-pin van Arduino Nano
  • De RS485-interface bestaat uit de volgende pinnen:
    • D+ (A of TR+) pin: deze pin faciliteert datacommunicatie.
    • D- (B of TR-) pin: deze pin dient voor datatransmissie.
    • GND pin: hoewel optioneel, wordt het sterk aanbevolen deze pin op te nemen om ruisinterferentie te verminderen en optimale prestaties te waarborgen.
    RS-485 module Pinout
    image source: diyables.io

Bedradingsdiagram

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

This image is created using Fritzing. Click to enlarge image

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

This image is created using Fritzing. Click to enlarge image

Hoe Arduino Nano te Programmeren voor gebruik van de RS485 module

  • Initialiseer de Serial-interface:
Serial.begin(9600);
  • Als u SoftwareSerial gebruikt, dient u de library te includen en een SoftwareSerial object te declareren:
#include <SoftwareSerial.h> #define RX_PIN 2 #define TX_PIN 3 // Definieer de SoftwareSerial objecten en hun pinnen SoftwareSerial rs485(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-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 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-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 } }

Testen

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

  • Verbind de Arduino Nano met uw pc via een RS485-naar-USB kabel zoals hieronder afgebeeld:
Arduino Nano RS485 naar pc communicatie
  • Installeer een Seriële Terminalprogramma zoals Tera Term of PuTTY
  • Open het Seriële Terminalprogramma en configureer de seriële parameters (COM-poort, baudrate, etc.)
  • Typ wat data in de Seriële Terminal om het naar de Arduino Nano te verzenden.
  • Als het succesvol is, ziet u de geëchode data terug op de Seriële Terminal.

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 en helpt u om de implementatie van RS485 met Arduino Nano makkelijker te maken.

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