0

我正在尝试将 70 个值从 Processing 发送到 Arduino(尽可能快),以便 Arduino 将这些值提供给伺服驱动器屏蔽。我在我的代码中尝试做的是一个接一个地发送数据,每次接收到一个值时,Arduino 都会确认到处理,以便移动到下一个。但是我的代码不能正常工作。请在下面查看我有哪些错误,或者如果您对该程序有更好的解决方案,请分享!谢谢你的时间!

Arduino代码

int val[70];
void setup()   {
  Serial.begin(9600);
}
void loop() {
 Serial.write(0);
   for (int i=0;i<70;i++){       
     if(Serial.available()>0)
{ 
     val[i]=Serial.read();
     Serial.write(i);     
     Serial.flush();        
   }
    }
if (val[0]==1 & val[1]==2)
{
    Serial.println("done");
} else {
    Serial.println("error");
  }
  delay(500);
}

处理代码

import processing.serial.*;
Serial myPort;
int last;
byte a[] = { 111, 112, 113, 99, 99, 99, 99, 99, 99, 99,
             99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
             99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
             99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
             99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
             99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
             99, 99, 99, 99, 99, 99, 99, 114, 115, 116 };
void setup()
{
  size (200, 200);
  String portName = Serial.list()[6];
  myPort = new Serial (this, portName, 9600);
   delay(2000);
}
void draw()
{
  while (myPort.available()>0)
  {
    for (int i=0; i<70; i++)
    {
      last = myPort.read();
      if (int(last) == i-1)
      { 
        myPort.clear();
        myPort.write(a[i]);
      }
    }
  }
}
4

0 回答 0