Bonjour,
Ça fonctionne très bien avec la fct print().
Maintenant j'aimerais envoyer plusieurs informations (environ 5 variables).
J'ai le programme d'émission, mais je ne sais pas si je dois utiliser une boucle avec une architecture "normale" ou un tableau.
Voici mes deux programmes:
- avec le tableau:
int index;//permet de parcourir le tableau
char deb_trans[] = "start";//début de la transmission série
/* -------L'INSTRUCTION "BYTE" N'ENVOIE QUE DES NBR ENTIERS----------*/
byte vitesse = 12; // déclare la vitesse à 12,8 Km/h
byte courant = 10; // déclare le courant à 10A
void setup() //initialisation
{
Serial.begin(9600); //on démarre la liaison en choisissant une vitesse de transmission de 9600 bauds
}
void loop() //création d'une boucle infinie
// on va envoyer les variables du tableau sur le port série
{
Serial.print(deb_trans);//on envoie l'information de début de transmission "start"
for (index=0; index <=1; index++){
Serial.print(variables[index]); //on envoie les valeurs du tableau une par une
delay(500);//attente de 500mS entre chaque caractère
}
}
- architecture "normale":
byte v = 2;
//déclaration variable i, pour le courant
byte i = 13;
//initialisation de la liaison
void setup()
{
Serial.begin(9600);
}
//lancement d'une boucle
void loop()
{
Serial.print(v);
delay(500);
digitalWrite(v , DEC);
Serial.print(i);
delay(500);
digitalWrite(i , DEC);
}
Mais j'ai un problème pour la réception j'ai essayé ce genre de programme mais sans résultat:
//déclaration d'une variable
byte carlu = 0;
//initalisation
void setup()
{
Serial.begin(9600);
}
//création d'une boucle infinie
void loop()
{
if(Serial.available() > 0)
{
carlu = Serial.read()- '0';
Serial.println(carlu);
Serial.flush();
if(carlu == 50)
{
digitalWrite(carlu , DEC);
Serial.print("la vitesse est de ");
Serial.flush();
}
else if(carlu == 49)
digitalWrite(carlu , DEC);
Serial.print("le courant est de ");
Serial.flush();
}
}
Quel programme choisir pour la réception et comment pourrais je améliorer mon programme de réception?
Merci ![]()