跳到主要內容

Arduino 處理接收的值


話不多說直接用程式碼解釋:(記得開中介程式)
 
 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 傳值給發送端
        }
} 

留言

匿名表示…
Dear Sir,

Hello,不曉得你會不會看到這篇留言。
Arduino在處理上面會出現一些小bug,所以我依你的程式概念加上參考國外一些網站修改。
可以使這支程式更加完善 :)

不知道你有沒有興趣,如果有的話可以回覆給我。我會分享我的想法給你

最後感謝你的想法,對我幫助很大。 謝謝
EGG寫道…
不好意思 我很有興趣 最近因為工作太忙所以沒時間到部落個新增文章 哈哈~再麻煩您跟我交流一下囉 謝謝