Bonjour,
J'ai lu beaucoup de sujet sur ce thème et je pensais que ça serait simple à mettre en place, mais !!!!
Je souhaite simplement connecter une carte NANO et une carte UNO entre elles pour que la UNO pilote la NANO. Un premier simple pour commander une led.
Le schéma de connexion est simple.
Je note au passage que l'emplacement des pins RX/TX sont inversées entre la NANO et la UNO.
et les programmes également :
EMETTEUR :
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(57600);
mySerial.begin(9600);
}
void loop() {
Serial.println("1");
mySerial.println(3);
delay(2000);
}
RECEPTEUR :
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
const int L1 = 4; // broche 4 pour une led de test
int x = 0;
String incomingByte;
String z;
int i=0;
void setup() {
pinMode(L1, OUTPUT); //L1 est une broche de sortie
digitalWrite(L1, HIGH); //on éteint la LED
Serial.begin(57600); // Serial monitor sur l'écran du PC
mySerial.begin(9600);
}
void loop()
{
//
i++; // pour un compteur dans le print de controle
Serial.print(i);
Serial.print(" ");
incomingByte = mySerial.read();
z = String(incomingByte);
Serial.println(z);
delay(1000);
if (!mySerial.available() <0 )
{
incomingByte = mySerial.read();
z = String(incomingByte);
if (z == "53"){
x = 100;
}
else if (z == "48") {
x = 0;
}
else if (incomingByte == 49) {
x = 100;
}
z="";
Serial.print(incomingByte);
Serial.print("!");
Serial.print(x);
Serial.print("!");
Serial.print(z);
Serial.println("!");
digitalWrite(L1,LOW); //on éteint la LED
}
}
Mon soucis, comme tout le reste, est simple, je ne reçois rien, le print de contrôle m'affiche des -1 en permanence. Le print d'émission est OK, les LED de fonctionnement sur les cartes clignotent au rythme des émissions. Quand j'inverse les RX/TX (pour voir) il n'y a plus rien dans le print de l'émetteur.
Je boucle depuis un moment et je commence à saturer.
Pouvez-vous m'aider ?
Merci
Cordialement
