Serial Read ()

Bonjour,
je suis en projet de terminale et je suis face a un petit soucis, je souhaite envoyer des données a partir de la carte 1 (Arduino Mega) jusqu’à la carte 2 (Arduino UNO) par liaison serie. J’arrive a envoyer une valeur, et la lire sur la deuxieme carte. Voici les deux programmes :
Carte 1 (Envoie)

#include <stdio.h>

char result[3] = "";
float tempf = 23.2;
int tempff = tempf*10;
void setup() {
  // Begin the Serial at 9600 Baud
    Serial.begin(9600);
  Serial1.begin(9600);
//  dtostrf(tempff, 3,0, result);
}

void loop() {
Serial1.write (tempff);
Serial.println(tempff); //Print data on Serial Monitor
delay(50);
}

Voici le deuxième code (recevoir) :

int val ;
float tempf;

void setup() {
  // Begin the Serial at 9600 Baud
  Serial.begin(9600);
}

void loop() {

//  Serial.readBytes (result,3);
if (Serial.available() > 0) {
                
 val = Serial.read();
 tempf = val;
 tempf = tempf/10;
  Serial.println(tempf);
  delay(50);}
  //Serial.readBytes(result,4); //Read the serial data and store in var
//  Serial.println(tempf); //Print data on Serial Monitor

}

Ces deux codes fonctionnent parfaitement, mais c’etait que des test, en effet j’ai plein de variables a envoyer et, là est ma question, comment faire pour les envoyer et les ranger des que je les recois (quand je dis ranger, c’est comme le val = Serial.read();
tempf = val;)

Il faut définir une syntaxe d’émission et écrire un petit analyseur syntaxique coté réception

Si vous voulez comprendre comment bien écouter le port série vous pouvez jeter un oeil à mon petit tuto sur le sujet

Bonjour,d’après ce que j'ai compris, je ne peux pas envoyer plusieurs INT et les "ranger" derrière ?

Vous pouvez faire ce que vous voulez d’un moment que c’est décodable, par exemple pour envoyer 10 11 et 12 vous pouvez envoyer en ASCII la chaîne {10,11,12} comme ça vous avez un joli marqueur de début (le ‘{‘), de fin (le ‘}’) et des séparateurs (la virgule), mais si vous balancez 101112 du côté du récepteur vous aurez du mal à savoir ce qui a été envoyé. Est 101 puis 112 et il manque un nombre ou 10 puis 1 puis 112 etc... —> besoin d’une syntaxe

Si vous voulez envoyer en binaire il vous faut un marquage de début de trame qui ne peut pas se produire avec vos nombres à transmettre.. par exemple trois 0x00 à la suite si ce cas ne se produit jamais dans la transmission