2016-12-22 1 views
-3

J'essaye d'allumer une LED quand un certain message arrive sur le port série mais rien ne fonctionne! s'il vous plaît aidez-moi !!arduino serial AIDEZ-MOI

int awsState = "AWS:0"; // for incoming serial data 

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

void loop() { 

    // send data only when you receive data: 
    if (Serial.available() > 0) { 
      // read the incoming byte: 
      awsState = Serial.read(); 

      // say what you got: 
      Serial.print(incomingByte); 
      Serial.println("Good"); 
      if (awsState == "AWS:1"){ 

       digitalWrite(13, HIGH); 
      } 
    else if (awsState == "AWS:0"){ 
     digitalWrite(13, LOW); 
    } 
    } 

} 
+1

Où est défini 'incomingByte'? Regardez ["Arduino - SoftwareSerial: read"] (https://www.arduino.cc/en/Reference/SoftwareSerialRead) ... Cette fonction renvoie seulement un caractère à la fois, pas le message complet. –

+0

Veuillez toujours faire un ** Outils> Format automatique ** sur votre code avant de le poster. – per1234

Répondre

-1

Voici une façon de lire une commande à partir du lien Serial.

Étape 1 - déclarer une chaîne pour stocker des données d'entrée comme variable globale

String awsState; 

Au lieu de:

int awsState = "AWS:0"; 

Étape 2 - initialiser la chaîne dans le setup()

void setup() { 
    Serial.begin(9600); 
    pinMode(13, OUTPUT); 
    awsState= ""; 
} 

Étape 3 - extraire tout caractère reçu, les afficher et traiter la commande

void loop() { 
    while (Serial.available() > 0) { 
     // read all received characters 
     char rec = Serial.read(); 
     // until <return> character 
     if (rec != '\n') { 
      awsState += rec; 
     } 
     else { 
      Serial.print(awsState); 
      Serial.println("Good"); 
      if (awsState == "AWS:1"){ 
       digitalWrite(13, HIGH); 
      } 
      else if (awsState == "AWS:0"){ 
       digitalWrite(13, LOW); 
      } 
      // reset the command to wait the next one 
      awsState= ""; 
     } 
    } 
} 
+0

Une raison de downvote? La réponse proposée explique où les erreurs ont été localisées et une solution facile à comprendre. –

+0

Im encore un peu confus, son ne fonctionne pas ?? –

+0

@DanielHolmes, l'avez-vous essayé? J'ai essayé de simuler, parce que je n'ai pas mon Arduino avec moi. –