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 !
