lundi 25 février 2013

[Arduino] Lire une ligne Serial

On peut avoir besoin d'interagir via une carte Arduino par Serial (USB ou RXTX) en envoyant un ou plusieurs caractères.
Pour lire une ligne entrée dans le Serial, il suffit d'écrire le code suivant :


String msg;
int ledPin = 13;

void setup(){
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop(){
  if(Serial.available() > 0){
    msg="";
    while (Serial.available()){
      delay(2);//Pour laisser le temps au buffer
      char c =Serial.read();
      msg += c;
    }
    Serial.println(msg);
  }
}


Ce code attend une entrée dans le Serial, lit les caractères entrés et les ré-écrit dans le Serial.

Cela permet par exemple d'allumer/éteindre une Led branchée sur l'arduino en fonction de l'entrée dans le Serial.

String msg;
int ledPin = 13;

void setup(){
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop(){
  if(Serial.available() > 0){
    msg="";
    while (Serial.available()){
      delay(2);//Pour laisser le temps au buffer
      char c =Serial.read();
      msg += c;
    }
    if(msg.equals("on")){
      digitalWrite(ledPin, HIGH);
    }else if(msg.equals("off")){
      digitalWrite(ledPin, LOW);
    }
  }
}

Avec le code suivant : 
- en écrivant "on", vous allumerez la led sur la pin 13
- en écrivant "off", vous éteindrez la led sur la pin 13


Aucun commentaire:

Enregistrer un commentaire