話不多說直接用程式碼解釋:(記得開中介程式)
char incomingByte; //接收到的字元 這裡是兩個 這裡算是型態轉換的一個變數
char str[2]; //str陣列 裡面儲存 兩個字元 分別以兩個空間去儲存
int count = 0; //自定變數
void setup()
{
Serial.begin(9600); // 打開串列埠,設置串列傳輸速率為9600 bps
}
void loop()
{
if (Serial.available() > 0) //意思應該是 是否有傳值近來
{
incomingByte = Serial.read();
// 把讀取的值 放在incomingByte
str[count++] = incomingByte;
if(count == 2)
{
count=0; //REFLASH陣列
Serial.print(str); // 印出陣列,接受到的值
exam(); //執行這個程式
}
}
}
void exam(){
if(str=="W1")
{
Serial.print("W1"); // 如果字串為W1 就印出 W1 傳值給發送端
}else if(str== "S0")
{
Serial.print("S0"); // 如果字串為S0 就印出 S0 傳值給發送端
}
}

留言
Hello,不曉得你會不會看到這篇留言。
Arduino在處理上面會出現一些小bug,所以我依你的程式概念加上參考國外一些網站修改。
可以使這支程式更加完善 :)
不知道你有沒有興趣,如果有的話可以回覆給我。我會分享我的想法給你
最後感謝你的想法,對我幫助很大。 謝謝