怎麼寫都可以, 只要和APP端格式相同即可 
不用特別傳 'b', 'c' 這些字元 
void loop (){ 
    byte Data[7]; 
 
    int x=analogRead(A0);//read sensor value 
    int y=digitalRead(A1);//read sensor value 
    int z=digitalRead(A2);//read sensor value 
     
    Data[0]='a'; 
    Data[1]=x/256; 
    Data[2]=x%256; 
    Data[3]=y/256; 
    Data[4]=y%256; 
    Data[5]=z/256; 
    Data[6]=z%256; 
      
    if(Serial.available() > 0) { 
     byte serialA=Serial.read(); 
     if (serialA == 97){ 
         for(int j=0;j<7;j++) 
           Serial.write(Data[j]);         
      } 
   } 
} 
 
>>我使用超音波回傳到手機的功能是有的 
前提是你用了那一個 APP Inventor 程式 
這個問題會出現在, 當距離大於 127 時 
如128, 它會得到一個負數, 相當於 -128 
最早之前的那 app, 他會多此一舉, 讀回負值後, 再加 256 回去 
所以又變回 256+(-128)=128, 所以結果也沒問題 
其實只要使用 unsigned 去讀, 就不用再處理 
直接 reciveunsigned1bytenumber*256+reciveunsigned1bytenumber 
即可 
 
而上面那個 app, 是使用 
recivesigned1bytenumber*256+recivesigned1bytenumber 
應該錯的, 難道可以測量超過 127 cm的資料, 而不會有錯嗎? 
 |