Bonjour victorelec
Voilà un petit exemple, sur Arduino Mega, entre leur port Serial1 à 115 200
Côtè émetteur
struct donneesMesureesDef
{float voltageA; float voltageB; float voltageC;};
donneesMesureesDef donneesAtransmettre;
unsigned long loopTime = 500; // Toutes lkes 500 milliSecondes
unsigned long loopTimeR = millis();
void setup()
{
Serial.begin(115200);
Serial1.begin(115200);
donneesAtransmettre.voltageA = 12.55;
donneesAtransmettre.voltageB = 2.03;
donneesAtransmettre.voltageC = 3750.20;
}
void loop()
{
if (millis()-loopTimeR >= loopTime)
{
Serial1.write((byte *)&donneesAtransmettre, sizeof donneesAtransmettre);
donneesAtransmettre.voltageA += 0.25;
donneesAtransmettre.voltageB += 1.1;
donneesAtransmettre.voltageC += 110.02;
loopTimeR = millis();
}
}
Côtè récepteur
struct donneesMesureesDef
{float voltageA; float voltageB; float voltageC;};
donneesMesureesDef donneesAtransmettre;
bool nouvellesDonnes = false;
void setup()
{
Serial.begin(115200);
Serial1.begin(115200);
}
void loop()
{
if (Serial1.available())
{
Serial1.readBytes((byte*)&donneesAtransmettre, sizeof donneesAtransmettre);
nouvellesDonnes = true;
}
if (nouvellesDonnes)
{
Serial.println("\n");
Serial.print(donneesAtransmettre.voltageA); Serial.print("\t");
Serial.print(donneesAtransmettre.voltageB); Serial.print("\t");
Serial.print(donneesAtransmettre.voltageC); Serial.print("\t");
nouvellesDonnes = false;
}
}
Côté émetteur, les 3 valeurs float sont incrémentées à chaque émission, pour voire les "mouvements" au récepteur.
Cordialement
jpbbricole