Arduino tidak menerima banyak perintah

Saya mencoba menyelesaikan dasar-dasarnya dengan Arduino saya, dan karenanya saya memulai dari yang kecil.

Karena itu, saya ingin Arduino mendengarkan beberapa perintah sederhana yang dikirim dari Raspberry Pi saya (namun sekarang saya meniru ini melalui monitor serial)

Ini adalah kode yang saya kerjakan:

#include "SoftwareSerial.h"

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

void loop() {
    if (Serial.find("test1")) {
      delay(100);
      Serial.println("TEST1 command received");
    }
    if (Serial.find("test2")) {
      delay(100);
      Serial.println("TEST2 command received");
    }
  }
}

Sayangnya, hanya perintah test1 yang memicu respons cetak serial, test2 tidak. Adakah yang bisa membantu mengarahkan saya ke arah yang benar?

Terima kasih!


person user5740843    schedule 22.09.2016    source sumber
comment
find akan memblokir hingga test1 ditemukan atau habis waktunya, menghabiskan semua data dalam perjalanannya, termasuk string test2 yang mungkin ditemui. Saya menyarankan Anda untuk melakukan sedikit riset tentang fungsi yang Anda coba gunakan.   -  person Eugene Sh.    schedule 22.09.2016


Jawaban (1)


Dari membaca dokumentasinya, saya rasa Anda tidak bisa menggunakan fungsi find() seperti itu.

Pertimbangkan apa yang terjadi jika test2 dimasukkan, ketika panggilan find("test1") sedang berjalan. Ini mungkin akan menggunakan semua karakter hingga dan termasuk 2, dan kemudian mengembalikan false, yang pada titik ini karakter tersebut akan hilang.

Saya pikir Anda harus merancang protokol yang sebenarnya, dengan beberapa pembatas antar perintah, dan membaca/mengurainya.

person unwind    schedule 22.09.2016