Probleme de connexion serie entre 2 mega 2560

Bonjour,
J'ouvre ce topic, car je n'ai pas trouvé de solution à mon problème.
J'ai fait des essais concluants de connexion entre une carte Mega 2560 et une carte Nano en passant par les TX2/RX2 de la Mega et les pins 10 et 11 de la Nano. J'émets et je reçois correctement.
Si je fais les mêmes branchements sur 2 Mega, ça fonctionne toujours par contre si je passe par les TX2/RX2 sur les 2 cartes ça ne marche plus. J'ai bien vérifié que les RX et la carte 1 allait sur le TX de la carte 2 et le TX de la carte 1 allait sur le RX de la carte 2. Le GND est raccordé sur les deux cartes.
Voici la connexion qui ne fonctionne pas :


Mes programmes :
Emetteur :

#include <SoftwareSerial.h>

SoftwareSerial mySerial(18, 19); // RX, TX
byte i = 1;
int j = 1;
int k = "1";
void setup() {
  Serial.begin(57600);
  mySerial.begin(9600);
}

void loop() { 
  Serial.print("i = ");
  Serial.print(i);
  mySerial.println(i);
  delay(2000);
  Serial.print("   j = ");
  Serial.print(j);
  mySerial.println(j);
  delay(2000);
  k = int(i);
  Serial.print("   k = ");
  Serial.println(k);
  mySerial.println(k);
  delay(2000);
}

Recepteur :

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);  // RX, TX
int x = 0;
byte incomingByte;
int i = 0;

void setup() {
  Serial.begin(57600);  // Serial monitor sur l'écran du PC
  mySerial.begin(9600);
}

void loop() {
  if (mySerial.available() > 0) {
    incomingByte = mySerial.read();
    x = int(incomingByte);
      Serial.print(" ! incomingByte=");
      Serial.print(incomingByte);
      Serial.print(" ! x=");
      Serial.println(x);

  }
}

Je précise que les cartes Mega sont des az-delivery et que les indications sur les pins 18 et 19 sont inversées par rapport aux autres pins de communication (le sont-elles réellement ???).

J'ai également essayé avec les pins 22 et 23 au lieu des 10 et 11 sans résultat positif.
J'ai bien sûr essayé avec les deux possibilités sur les TX/RX2 ou RX/TX2
Pourriez-vous m'expliquer pourquoi avec les 10 et 11 est OK, mais qu'avec les 18/19 ou 22/23 ce n'est pas OK ?
Merci à vous
Cordialement

:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ je l'ai déplacé vers le forum francophone pour vous pour cette fois...

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

pourquoi utiliser sofwtare serial sur des port séries hardware ??

l'émetteur et le récepteur devraient utiliser Serial1

sur l'émetteur et le récepteur

void setup() {
  Serial.begin(115200);
  Serial1.begin(115200);
}

void loop() {
  if (Serial.available()) Serial1.write(Serial.read());
  if (Serial1.available()) Serial.write(Serial1.read());
}

ouvrez des terminal série à 115200 bauds sur les 2 ports USB (série) de vos MEGA --> ce que vous tapez d'un côté va apparaître de l'autre côté

Bonjour,
Je n'ai toujours pas compris pourquoi les connexions évoquées dans ce topics ne fonctionnaient pas mais j'ai une solution qui consiste à passer par l'I2C et les pins SDA et SCL et ça marche parfaitement.
Si vous avez une idée sur mon problème d'origine, je suis tout de même preneur.
Cordialement

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.