Arduino считывает строку из последовательного порта

#include <stdio.h>

#define LED 13

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

void loop() {
  int i;
  char command[5];
  for (i = 0; i < 4; i++) {
    command[i] = Serial.read();
  }
  command[4] = '\0';

  Serial.println(command);

  if (strcmp(command, "AAAA") == 0) {
    digitalWrite(LED, HIGH);
    Serial.println("LED13 is ON");
  } else if (strcmp(command, "BBBB") == 0) {
    digitalWrite(LED, LOW);
    Serial.println("LED13 is OFF");
  }
}

Я пытаюсь прочитать 4-символьную строку с серийным номером Arduino, и когда это AAAA, включаю светодиод, когда он это BBBB выключить серийный номер.

Однако, когда я ввожу «AAAA», оно читается как «AAAÿ» с большим количеством «ÿ» по пути.

Кажется, я все правильно читаю, но работает не очень хорошо. Есть идеи, что я делаю не так?

5
задан David Gomes 4 May 2012 в 14:48
поделиться