Bonjour,
Merci d'avance pour votre aide, malgré plusieurs jours de recherche je n'ai pas trouver la solution a mon problème.
j'ai une Arduino nano qui me sert d'actionneur bas niveau pour des capteurs et moteurs et je veux lui envoyer des instructions et récupérer des infos via la liaison serie1 d'une MEGA et cela toutes les 200ms.
D'un autre coté j'aimerai faire un monitoring toutes les 500ms sur la liaison serie0 (USB) sur mon PC.
je me suis inspirer de de l'exemple " Use Multiple Serial Ports on the Arduino Mega" et de la fonction millis().
Quand la nano reçoit le string "comP2 R1_GPIO" elle répond par une chaine de 8 zéro ou un en random du genre.
voici le code:
unsigned long TempsMEGA2NANO;
String RecupNANO;
String EnvoiNANO;
void setup() {
// initialize both serial ports:
Serial.begin(1000000);
Serial1.begin(1000000);
TempsMEGA2NANO = millis();
EnvoiNANO = "comP2 R1_GPIO\n";
}
void loop() {
if (millis() - TempsMEGA2NANO > 99) {
TempsMEGA2NANO = millis();
Serial.println("je suis dans le millis");
Serial1.print(EnvoiNANO);
Serial.print("voici le RecupNANO: ");
Serial.println(RecupNANO);
Serial.print("voici le millis(): ");
Serial.println(TempsMEGA2NANO);
}
// read from port 1:
if (Serial1.available()) {
RecupNANO = Serial1.readString();
}
// read from port 0:
if (Serial.available()) {
EnvoiNANO = Serial.readString(); //oui oui c'est un faux RecupNANO
}
}
le problème c'est que j'ai un temps de réponse a seconde au lieu des 100ms de la boucle millis.

A la main directement avec la consol sur la nano je suis plus rapide...
Je suis donc preneur d'explication car je suis devant un mur la.
Voili voilou
Vincent