Arduino RS485

Dans ce tutoriel, nous explorerons la mise en œuvre de la communication RS485 avec Arduino. Plus précisément, nous aborderons en détail les aspects suivants :

Le tutoriel fournit également des instructions pour le Serial matériel et le SoftwareSerial.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×TTL to RS485 Module
1×Jumper Wires
1×(Optional) RS485 to USB Cable
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module TTL vers RS485

Lors de l'utilisation de la communication série sur Arduino via des fonctions telles que Serial.print(), Serial.read() et Serial.write(), l'Arduino transmet des données via la broche TX et reçoit des données par la broche RX. Ces broches fonctionnent au niveau TTL, ce qui signifie que les signaux qu'elles gèrent ont une portée limitée. Ainsi, pour une communication série sur de plus longues distances, il devient nécessaire de convertir le signal TTL en normes de signal RS232, RS485 ou RS422.

Dans ce tutoriel, nous allons explorer l'utilisation de RS485 (également connu sous le nom de RS-485) avec Arduino en utilisant un module TTL vers RS485. Ce module facilite la conversion des signaux TTL en signaux RS485 et vice versa.

Brochage

Le module RS485 vers TTL possède deux interfaces :

  • L'interface TTL (connectée à Arduino) comprend 4 broches :
    • Broche VCC : broche d'alimentation, doit être connectée à VCC (5V, ou 3.3V)
    • Broche GND : broche d'alimentation, doit être connectée à GND (0V)
    • Broche RXD : broche de données, doit être connectée à une broche TX d'Arduino
    • Broche TXD : broche de données, doit être connectée à une broche RX d'Arduino
  • L'interface RS485 comprend les broches suivantes :
    • Broche D+ (A ou TR+) : Cette broche facilite la communication des données.
    • Broche D- (B ou TR-) : Cette broche est utilisée pour la transmission des données.
    • Broche GND : Bien que facultative, il est fortement recommandé d'inclure cette broche pour réduire les interférences de bruit, assurant ainsi une performance optimale.
    Brochage du module RS-485
    image source: diyables.io

Diagramme de câblage

  • Schéma de câblage pour l'utilisation du port série matériel
Schéma de câblage Arduino TTL vers RS485

This image is created using Fritzing. Click to enlarge image

  • Schéma de câblage si utilisation d'une liaison série logicielle
Schéma de câblage Arduino RS-485 vers TTL

This image is created using Fritzing. Click to enlarge image

Comment programmer l'Arduino pour utiliser le module RS485

  • Initialise l'interface série :
Serial.begin(9600);
  • Si vous utilisez SoftwareSerial, vous devez inclure la bibliothèque et déclarer un objet SoftwareSerial :
#include <SoftwareSerial.h> // Définir les objets SoftwareSerial et leurs broches SoftwareSerial rs485(6, 7); // RX : 6, TX : 7

Code Arduino pour le port série matériel

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 } }

Code Arduino pour le port série logiciel

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 } }

Test

Vous pouvez effectuer un test en envoyant des données de votre PC à Arduino via RS-485 et vice versa. Pour ce faire, suivez les étapes ci-dessous :

  • Connectez l'Arduino à votre PC via le câble RS485-USB comme ci-dessous :
Communication Arduino RS485 vers PC
  • Installez un programme de terminal série tel que Tera Term ou PuTTY
  • Ouvrez le programme de terminal série et configurez les paramètres série (port COM, baudrate...)
  • Tapez des données depuis le terminal série pour les envoyer à l'Arduino.
  • Si l'opération est réussie, vous verrez les données en écho sur le terminal série.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!