Je rencontre un problème de retour d'information sur le bus Modbus RS485. J'établis une communication entre une carte Arduino et un capteur SHT20 doté d'une interface RS485, mais je ne reçois aucune réponse. J'ai testé le module avec l'Arduino en mode loopback pour identifier le problème et j'ai observé que les données sont envoyées de l'Arduino vers le module, avec les voyants TX de l'Arduino et RX du module allumés, mais je ne reçois toujours pas de retour d'information
Veuillez utiliser la langue anglaise dans les sections anglaises du forum. Votre sujet a été déplacé vers la section française du forum.
merci pour votre réactivité
Expliquez le câblage, le module RS485 utilisé sur l'arduino, l'alimentation de tout cela ainsi que le code utilisé... Sans ces infos comment voulez vous qu'on puisse vous aider ?
J’utilise une carte Arduino Uno et un capteur de température avec une interface Modbus RS485, accompagné d’un module de conversion automatique TTL vers RS485.
Câblage :
- Module RS485
- VCC → 5V de l’Arduino
- GND → GND de l’Arduino
- TXD → RX de l’Arduino (ex. broche 10)
- RXD → TX de l’Arduino (ex. broche 11 )
- A → Ligne A du bus RS485
- B → Ligne B du bus RS485
- code*
#include <SoftwareSerial.h>
#include <ModbusMaster.h>
// Définir les broches pour SoftwareSerial
#define RX_PIN 10 // RX de l'Arduino
#define TX_PIN 11 // TX de l'Arduino
SoftwareSerial RS485Serial(RX_PIN, TX_PIN); // Port série pour RS485
ModbusMaster node;
void setup() {
Serial.begin(9600); // Moniteur série
RS485Serial.begin(9600); // Port RS485 (ajustez le baudrate si nécessaire)
node.begin(1, RS485Serial); // ID Modbus = 1 (ajustez si nécessaire)
}
void loop() {
uint8_t result;
uint16_t temperature;
result = node.readHoldingRegisters(0x0001, 1); // Adresse du registre à lire
if (result == node.ku8MBSuccess) {
temperature = node.getResponseBuffer(0);
Serial.print("Température: ");
Serial.print(temperature / 10.0); // Conversion en °C
Serial.println(" °C");
} else {
Serial.print("Erreur Modbus: 0x");
Serial.println(result, HEX);
}
delay(2000);
}
merci d'utiliser les balises de code dans le futur. Je l'ai fait pour vous pour cette fois.
c'est cette bibliothèque qui n'a pas été mise à jour depuis 14 ans que vous utilisez ?
Je ne connais pas cette bibliothèque et il y a des trucs plus récents comme
D'accord, je vais essayer d'utiliser cette bibliothèque et observer le comportement du code
il y en a plusieurs autres, essayez aussi Modbus-RTU/README.md at master · e-tinkers/Modbus-RTU · GitHub
Merci pour votre disponibilité et votre réactivité