Part3.1.3 傳送一筆資料

本程式碼可以傳送65536.00000~-65536.00000 之間的數字(含正負與小數)

APP下載

APP Inventor 模板下載

Arduino 程式碼下載

#include <SoftwareSerial.h>

SoftwareSerial BT(3,2); // RX, TX

byte cmd;

float a,b,c,d,e; //此代表待傳送的五個變數

byte Data[16];

unsigned long a0,a1,a2,a3,a4;

void setup() {

Serial.begin(9600);

BT.begin(38400);//bluetooth baud rate

}

void loop() {

a = -3.14159;

bt();

delay(10); //傳送速度極限大約10ms 一組資料

}

void bt(){

if(a>=0){

a0 = 3 ; //a0表正負號

a1 = int(a) / 1 ; //a1表整數部分

a2 = long(a*100000)%100000; //a2表浮點數部分

}

if(a<0){

a0 = 1 ;

a1 = int(-1 * a) / 1 ;

a2 = long(-1*a*100000)%100000;

}

cmd = BT.read();

Data[0]='a';

Data[1]=a0;

Data[2]=a1/256;

Data[3]=a1%256;

Data[4]='b';

Data[5]=a2/65536;

Data[6]=a2%65536/256;

Data[7]=a2%256;

if (cmd == 49){

for(int j=0;j<9;j++){

BT.write(Data[j]);

}

cmd=0;

}

}