Communication TX/RX entre deux Arduino Mega

Bonjour à tous !

Je cherche a faire communiquer deux arduino entre eux , en plus d'une liaison PC pour l'un des deux.

Le premier Arduino est donc relier à un PC et au Second arduino par les ports RX1/TX1 et donc le second est juste relier au premier par les ports RX1/TX1.

Pour tester la communication j'ai fait un montage avec un bouton et une led sur l'arduino 1 et une led sur l'arduino 2.
Si le bouton est appuyer les led doivent s'allume ( celle de l'arduino 1 me sert juste de témoins )

Voici un schéma du montage:

J'ai chercher un peu partout sur internet sans vraiment trouver de réponse , j'ai plus ou moins réussi avec le code suivant mais j'ai plusieurs problèmes:

Premier Arduino

const int buttonPin = 53;     // the number of the pushbutton pin
const int ledPin2 =  31; 
const int TX1 = 18;
const int RX1 = 19;
// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(TX1, OUTPUT);
  pinMode(RX1, INPUT);
  Serial1.begin(9600);
  Serial.begin(9600);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    // turn LED on:
    Serial1.print('A');
    Serial.print("A");
    digitalWrite(ledPin2, HIGH);
  } else {
    // turn LED off:
    Serial1.print('B');
    Serial.print("B");
    digitalWrite(ledPin2, LOW);
  }
}

2nd arduino:

const int ledPin =  52;      // the number of the LED pin
const int TX1 = 18;
const int RX1 = 19;

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  Serial1.begin(9600);
  pinMode(TX1, OUTPUT);
  pinMode(RX1, INPUT);
}

void loop() {
  if (Serial1.available())
  {

    
    if (Serial1.read() == 'A')
    {
    Serial.println("COMMUNICATION AVEC ARDUINO 1 ON");
    digitalWrite(ledPin, HIGH);
    }
    else 
    {
      digitalWrite(ledPin, LOW);
      Serial.println("COMMUNICATION AVEC ARDUINO 1 OFF");
    }
  }
else
{
Serial.println("ECHEC COMMUNICATION");
}


}

Les problèmes donc :

Si je regarde le moniteur série de l'arduino 2 , plus rien ne ce passe.
J'ai un long délai avant que la led s'éteigne .

Je pense que mon Code est très loin d'être le mieux fait et doit être raison des plantages , savez vous comment je peut résoudre tout ça ?
Merci à vous !

Bonjour,

Le problème est que tu envoies des 'A' et des 'B' à toute vitesse.
Du coté réception, tu reçois le caractères forcément moins vite puisque en plus de la réception tu affiches des phrases sur le moniteur série.
Donc au bout de quelque temps, ça sature complètement.

Palliatif: tu mets une tempo de 100ms dans la loop de l'émetteur
Solution: tu n'envoie que lorsque le bouton change d'état.

Salut
J'ai fait une librairie pour les communications série :

Ca peut t'aider.....

Bonjour,

Je souhaite aussi réaliser la même chose!!

Mieux vaut les connecter en Série ou en I2C?

Merci!