Go Down

Topic: [Résolu] Liaison série (Read 703 times) previous topic - next topic

Uzuma

Jun 15, 2014, 12:24 am Last Edit: Jun 15, 2014, 04:20 am by Uzuma Reason: 1
Bonsoir,

j'ai une petite question que j'aimerais poser : Est-ce que Arduino peut envoyer des données sur la liaison série et en recevoir en même temps ?

Je m'explique :

Supposons que je veuille envoyer un caractère 'A' via une interface côté PC pour dire à l'Arduino : "Commence par envoyer des données" puis après lui envoyer un caractère 'B' pour lui dire : "Arrête d'envoyer les données".

j'ai écris ce petit code histoire de montrer ce que je veux dire :

Code: [Select]

int valeur_brute;
float calcul;
float Tension;
char data_in1, data_in2;

void setup()
{
Serial.begin(9600);
pinMode(A0, INPUT);
}

void loop()
{
  if (Serial.available() > 0)
  {
    data_in1 = Serial.read();
    while (data_in1 == 'A')
    {
      valeur_brute = analogRead(A0);
      calcul = float(valeur_brute) * 5000.0 / 1024.0;
      Tension = calcul/1000.0;
      Serial.println(Tension);
      delay(20);
      data_in2 = Serial.read();
      if (data_in2 == 'B')
      {
        break;
      }
      delay(30);
    }
  }
}


Encore une question : lorsque j'envoie le caractère 'A' la led Rx clignote mais il ne se passe rien après. Ai-je mal écrit le code ?

Uzuma

Le problème est résolu  :smiley-sweat:

En fait c'était cette partie du code qui ne passait pas :
Code: [Select]

while (data_in1 == 'A')


Il fallait plutôt écrire :
Code: [Select]

while (1)

Go Up