我目前正在大学从事一个 arduino 项目。基本上我想做的是将一串数据从 VVVV 发送到 arduino,但是我需要将数据解析成一个数组,我完全不知道该怎么做!
从 VVVV 发送的字符串是这样的;U,c,R,|,W,H,P 和我每次都需要将这些值中的每一个写入特定的伺服,因此值 1 需要转到伺服 1,依此类推。
这是我目前的代码,我意识到它的编码非常糟糕,当我弄清楚如何解析数据时,我确实打算让它更有效率。
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
char array1[4] = { '0', '0', '0', '0'}; //array for midi variables
void setup()
{
 // begin the serial communication
 Serial.begin(9600);
 servo1.attach(2);
 servo2.attach(3);
 servo3.attach(4);
 servo4.attach(5);
}
void loop(){
  while (Serial.available() == 0)  {
    array1[0] = 0;
    array1[1] = 0;
    array1[2] = 0;
    array1[3] = 0;
  }
{
 // check if data has been sent from the computer
 if (Serial.available() >= 4) {
    for ( int i = 0; i < 4; i++)
    array1[i] = Serial.read();
  }
   Serial.print(array1[0]);
   Serial.print(array1[1]);
   Serial.print(array1[2]);
   Serial.print(array1[3]);
   servo1.write(array1[0]);
   servo2.write(array1[1]);
   servo3.write(array1[2]);
   servo4.write(array1[3]);
}
}
编辑 - 我可能应该提到我最终希望使用 7 个伺服系统,但目前我只在我的电路中使用 4 个。此外,当我上传此补丁并启用 VVVV 时,arduino 只是断开连接。