Part3.3.3 傳送三組數據

https://sites.google.com/site/csjhmaker/arduino-ji-chu/shuanga-ji-hua/part3-3-3-chuan-song-san-zu-shu-ju/blocks%20(1).png

#include <SoftwareSerial.h>

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

byte cmd;

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

byte Data[25];

unsigned long a0,a1,a2,b0,b1,b2,c0,c1,c2;

void setup() {

Serial.begin(9600);

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

}

void loop() {

a = -3.14159;

b = 9.487 ;

c = 123.4567;

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;

}

if(b>=0){

b0 = 3 ; //a0表正負號

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

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

}

if(b<0){

b0 = 1 ;

b1 = int(-1 * b) / 1 ;

b2 = long(-1*b*100000)%100000;

}

if(c>=0){

c0 = 3 ; //a0表正負號

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

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

}

if(c<0){

c0 = 1 ;

c1 = int(-1 * c) / 1 ;

c2 = long(-1*c*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;

Data[8]='c';

Data[9]=b0;

Data[10]=b1/256;

Data[11]=b1%256;

Data[12]='d';

Data[13]=b2/65536;

Data[14]=b2%65536/256;

Data[15]=b2%256;

Data[16]='e';

Data[17]=c0;

Data[18]=c1/256;

Data[19]=c1%256;

Data[20]='f';

Data[21]=c2/65536;

Data[22]=c2%65536/256;

Data[23]=c2%256;

if (cmd == 49){

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

BT.write(Data[j]);

}

cmd=0;

}

}