向 Arduino 发送两个不同的信息

Sending two different informations to an Arduino

这是一个帮助我开始学习程序的问题。这是设置:我正在从赛车游戏中提取数据,我想使用这些数据来驱动插入我的 Arduino Uno 的 2 个伺服电机。一个舵机将显示 RPM,另一个将显示速度。

PC 上的程序 运行 正在通过串行端口将信息发送到 Arduino,我想知道您是否对如何 "separate" 这两个不同的信息,以便 Arduino 可以识别它们中的每一个并将其用于正确的伺服电机。

这与其说是帮助我在特定代码上的问题,不如说是在寻找一些通常用于识别和分离不同数据包的方法。

谢谢!

一种简单的方法是使用标识符字节。所以数据帧首先总是有一个标识符字节。您可以像这样在枚举中定义标识符:

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;
  }
}

这个解决方案是非常模块化的。您可以很容易地更改和扩展此解决方案。