【问题标题】:Sending two different informations to an Arduino向 Arduino 发送两个不同的信息
【发布时间】:2016-05-07 17:32:38
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 序列化以外的?

标签: arduino packet hint


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的提示!我会试着看看这是怎么回事:)
猜你喜欢
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 2019-08-06
  • 1970-01-01
  • 2013-10-26
  • 2012-09-21
相关资源
最近更新 更多