向Arduino发送两个不同的信息

时间:2016-05-07 17:32:39

标签: arduino packet hint insight

这是一个帮助我开始学习课程的问题。以下是设置:我从赛车游戏中提取数据,我想用这些数据来启动插入我的Arduino Uno的2个伺服电机。一个伺服是RPM,另一个是Speed。

信息由PC上运行的程序通过串口发送到Arduino,我想知道您是否有任何关于如何“分离”这两种不同信息的见解或提示,以便Arduino可以识别它们中的每一个并在正确的伺服电机上使用它。

这不是一个帮助我处理特定代码的问题,我正在寻找一些通常用于识别和分离不同数据包的方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

一种简单的方法可以是使用标识字节。因此,数据帧首先始终具有标识符字节。您可以在枚举中定义标识符,如下所示:

enum DataIdentifier
{
  Rpm,
  Speed
};

你的arduino代码可能是这样的:

if(Serial.available > 0)
{
  byte Identifier = Serial.read();
  switch(Identifier)
  {
    case Rpm:
      //Read X Bytes and use the RPM Servo
      break;
    case Speed:
      //Read X Bytes and use the Speed Servo
      break;
    default:
      break;
  }
}

此解决方案非常模块化。您可以非常轻松地更改和扩展此解决方案。