2015-07-21 118 views
0

我需要从一个arduino发送两个单独的整数到另一个。距离和沟通没有问题,但我不知道如何做到这一点。从arduino发送6数字长整数到arduino

我需要在0.2秒内发送两个整数,每个从-15000到15000。

所以一个arduino正在发送,另一个正在读取。

回答

0

假设你已经有两个项目之间的串行链路,可以

1)发送在基于文本的方式:

// Sender 
Serial.print(value); 

// Receiver 
int value = Serial.parseInt(); 

2)在基于二进制的方式发送:

byte arr[4]; 

// Sender 
for (i=0;i<4;i++) 
    arr[i] = (value >> (8*(3-i))) & 0xFF; 
Serial.write(arr,4); 

// Receiver 
if (Serial.available() > 4) 
{ 
    Serial.readBytes(arr,4); 
    value = 0 
    for (i=0;i<4;i++) 
     value = (value << 8) | (((int)arr[i]) & 0xFF); 
} 

第一种方法更简单,第二种方法更优化,如果添加一些控件可以变得更加可靠。

如果你不使用串行通信,你将不得不改变这些功能(但可能任何接口都可以发送和接收字节数组,所以第二个接口几乎可以在任何情况下应用)