向 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;
}
}
这个解决方案是非常模块化的。您可以很容易地更改和扩展此解决方案。
这是一个帮助我开始学习程序的问题。这是设置:我正在从赛车游戏中提取数据,我想使用这些数据来驱动插入我的 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;
}
}
这个解决方案是非常模块化的。您可以很容易地更改和扩展此解决方案。