Arduino RS485

In deze handleiding gaan we dieper in op de implementatie van RS485-communicatie met Arduino. We behandelen specifiek de volgende aspecten in detail:

De handleiding geeft instructies voor zowel de Hardware Serial als SoftwareSerial interfaces.

Hardware Benodigdheden

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×TTL naar RS485 Module
1×Jumperkabels
1×(optioneel) USB naar RS485 Converter
1×(optioneel) USB naar RS485 Kabel
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

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 RS485 Module

Bij het gebruik van seriële communicatie op Arduino via functies zoals Serial.print(), Serial.read() en Serial.write(), verzendt de Arduino data via de TX-pin en ontvangt data via de RX-pin. Deze pinnen werken op TTL-niveau, wat betekent dat de signalen die zij verwerken een beperkte reikwijdte hebben. Daarom is het voor seriële communicatie over langere afstanden noodzakelijk om het TTL-signaal om te zetten naar RS232-, RS485- of RS422-signaalstandaarden.

In deze handleiding richten we ons op het gebruik van RS485 (ook bekend als RS-485) met Arduino door een TTL naar RS485 module te gebruiken. Deze module zorgt voor de conversie van TTL-signalen naar RS485-signalen en vice versa.

Pinout

De RS485 naar TTL module heeft twee interfaces:

  • De TTL-interface (verbonden met Arduino) heeft 4 pinnen:
    • VCC pin: voedingspin, dient aangesloten te worden op VCC (5V of 3.3V)
    • GND pin: voedingspin, dient aangesloten te worden op GND (0V)
    • RXD pin: datapin, moet worden verbonden met de TX-pin van de Arduino
    • TXD pin: datapin, moet worden verbonden met de RX-pin van de Arduino
  • De RS485 interface bestaat uit de volgende pinnen:
    • D+ (A of TR+) pin: Deze pin faciliteert gegevenscommunicatie.
    • D- (B of TR-) pin: Deze pin dient voor datatransmissie.
    • GND pin: Hoewel optioneel, wordt het sterk aanbevolen om deze pin mee te nemen om storingen door ruis te verminderen voor optimale prestaties.
    RS-485 module Pinout
    image source: diyables.io

Bedradingsschema

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

This image is created using Fritzing. Click to enlarge image

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

This image is created using Fritzing. Click to enlarge image

Hoe Arduino te programmeren voor het gebruik van de RS485 module

  • Initialiseer de Serial interface:
Serial.begin(9600);
  • Als u SoftwareSerial gebruikt, moet u de bibliotheek includen en een SoftwareSerial object declareren:
#include <SoftwareSerial.h> // Definieer de SoftwareSerial objecten en de bijbehorende pinnen SoftwareSerial rs485(6, 7); // RX: 6, TX: 7

Arduino Code voor Hardware Serial

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

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-rs485 */ #include <SoftwareSerial.h> // define the SoftwareSerial object and their pins SoftwareSerial rs485(6, 7); // RX: 6, TX: 7 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 versturen van uw pc naar Arduino via RS-485 en andersom. Volg hiervoor onderstaande stappen:

  • Verbind Arduino met uw pc via een RS485-naar-USB kabel zoals hieronder aangegeven:
Arduino RS485 naar PC communicatie
  • Installeer een Seriële Terminal Programma zoals Tera Term of PuTTY
  • Open het Seriële Terminal Programma en configureer de seriële parameters (COM-poort, baudrate, etc.)
  • Typ wat data in het Seriële Terminal programma om deze naar Arduino te sturen.
  • Als het succesvol is, ziet u de echo van de data in het Seriële Terminal programma.

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.

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