1

Arduino で問題が発生しています。Arduino IDE でシリアル モニターを開いて、hello のようなものを入力できるようにしたいと考えています。また、Arduino にそのいわゆるコマンドに対する応答を設定して、いわばチャット ボットを作成できるようにしたいと考えています。

これが私のコードです。誰かが私を助けてくれますか?

  byte byteRead;

  void setup() 
  {
       Serial.begin(9600);


  }

  void loop() 
  {
       if (Serial.available()) {

        byteRead = Serial.read();

        if(byteRead =="hello") {
        Serial.println("hello freind");
        }
  }
4

2 に答える 2

0

byteRead =="hello"真実になる可能性が低すぎる。文字列 (1 文字だけでなく!) を読み取って、文字列内の文字を 1 つずつ比較してみてください。

// read one line
void read_line(char *buf, int max)
{
  int i = 0;
  while(i < len - 1) {
    int c = Serial.read();
    if (c >= 0) {
      if (c == '\r' || c == '\n') break;
      buf[i++] = c;
    }
  }
  buf[i] = '\0';
}

// compare two strings and return whether they are same
int is_same(const char *a, const char *b)
{
  while (*a != '\0' || *b != '\0') {
    if (*a++ != *b++) return 0;
  }
  return 1;
}

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  if (Serial.available()) {
    char stringRead[128];
    read_line(stringRead, 128);
    if(is_same(stringRead, "hello")) {
        Serial.println("hello freind");
    }
  }
}
于 2015-12-21T07:20:29.140 に答える