Messages : 6
Sujets : 1
Inscription : Aug 2025
re-rebonjour
Bon, bingo!
V15.04 compilée avec mon 38400 bauds et ça fonctionne.
Je suis comme
: https://f1atb.fr/forum_f1atb/thread-1658-post-13513.html#pid13513
Il faut effectivement que je trouve comment on fait pour faire revenir le JSY aux 4800 bauds,
mais si un petit paramètre pouvait se glisser, je vois que l'on est plusieurs à avoir eu le souci avec ce paramètre de JSY.
Dans tous les cas mercis pour les réflexions qui m'ont permis de recouvrir la mémoire de mon installation initiale et de mon JSY non normé.
Bonne fin de week-end à toutes et tous
Daft
Messages : 601
Sujets : 4
Inscription : Sep 2024
24-08-2025, 02:55 PM
(Modification du message : 24-08-2025, 03:00 PM par Lolo69.)
comme tu sembles maitriser l'arduino , tu peux essayer de charger le code suivant dans ton RMS comme ca tu benficies deja du cablage , ca evite d'utiliser le soft de config sur PC mais avec lequel il faut acheter un adaptateur Serial UART vers USB
ce code devrait passer ta vitesse actuelle de 38400 par 4800 comme reclamé par le code RMS d'André, et avec un cablage sur les GPIO 26/27 ( à adapter donc en fonction de vos configuration)
Apres pour André cela ne devrait pas etre compliquer de modifier le code du RMS pour balayer les quelques vitesses disponibles et de l'enregistrer dès qu' il y en a une qui donne une réponse coherente
Code :
#include <Arduino.h>
HardwareSerial jsySerial(1); // Utilisation de l'UART1 de l'ESP32
#define RXD2 26 //REMPLACER SI different de 26
#define TXD2 27 //REMPLACER SI different de 27
// Fonction pour calculer le CRC16 Modbus
uint16_t crc16_modbus(const uint8_t* buf, uint8_t len) {
uint16_t crc = 0xFFFF;
for (uint8_t pos = 0; pos < len; pos++) {
crc ^= buf[pos];
for (uint8_t i = 8; i != 0; i--) {
if ((crc & 0x0001) != 0) {
crc >>= 1;
crc ^= 0xA001;
} else {
crc >>= 1;
}
}
}
return crc;
}
void setup() {
Serial.begin(115200);
// 1️⃣ Configurer l'ESP32 à la vitesse actuelle du module (38400 bps) A modifier par la valeur fonctionnelle actuelle
jsySerial.begin(38400, SERIAL_8N1, RXD2, TXD2);
delay(1000);
// 2️⃣ Préparer la commande pour changer le module à 4800 bps
byte command[] = {0x01, 0x10, 0x00, 0x04, 0x00, 0x01, 0x02, 0x00};
uint16_t crc = crc16_modbus(command, sizeof(command));
// Ajouter CRC à la fin
byte message[sizeof(command)+2];
memcpy(message, command, sizeof(command));
message[sizeof(command)] = crc & 0xFF; // CRC low byte
message[sizeof(command)+1] = (crc >> 8) & 0xFF; // CRC high byte
// 3️⃣ Envoyer la commande
jsySerial.write(message, sizeof(message));
Serial.println("Commande envoyée pour changer le débit en bauds à 4800.");
delay(500);
// 4️⃣ Reconfigurer l'ESP32 à 4800 bps pour continuer la communication
jsySerial.updateBaudRate(4800); // Méthode ESP32 pour changer la vitesse
Serial.println("ESP32 configuré à 4800 bps pour correspondre au module.");
}
void loop() {
// Relayer les données vers le moniteur série
if (jsySerial.available()) {
Serial.write(jsySerial.read());
}
if (Serial.available()) {
jsySerial.write(Serial.read());
}
}