Part3.3.3 傳送三組數據
#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;
}
}