怎麼寫都可以, 只要和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的資料, 而不會有錯嗎?
|