使用IF语句时出错

时间:2016-05-17 08:34:19

标签: arduino-uno

我是Arduino的新手。目前我正在研究一个使用手机陀螺仪传感器控制遥控车运动的项目。这是我目前的代码;

char blueToothVal;           //value sent over via bluetooth
char lastValue;              //stores last state of device (on/off)
String str,x,y,z;
int value = 0;


void setup()
{
Serial.begin(9600); 

}


void loop()
{
if(Serial.available() >0 && value == 0 ) {
 str= Serial.readStringUntil('A');
 value = 1;

if(value == 1){
  x= Serial.readStringUntil(';');
  Serial.print("x = ");
  Serial.print(x.toFloat());
  Serial.print(" ");
  y=Serial.readStringUntil(';');
  Serial.print("y = ");
  Serial.print(y.toFloat());
  Serial.print(" ");
  z= Serial.readStringUntil('A');
  Serial.print("z = ");
  Serial.print(z.toFloat());
  Serial.println('\n');
  value = 0;
  delay(10);
 }
 }
if( y >=5 ){ //car forward
//CODING MOTOR HERE
}

if( y <= -3){ //car backward
//CODING MOTOR HERE
}

if( y >=5 && z >= 5){ //car steer to the left 
//CODING MOTOR HERE
}

if( y >=5 && z <= -10){ //car steer to the right
//CODING MOTOR HERE
}

if( y <= -3 && z >=5){ //car reverse to the left
//CODING MOTOR HERE
}

if( y <= -3 && z <= -10){ //car reverse to the right
//CODING MOTOR HERE
}

if( x >= 330.00){ // only left tyre go forward
//CODING MOTOR HERE
}

if( x <= 300.00){ // only right tyre go forward
//CODING MOTOR HERE
}
}

我正在使用Arduino Uno R3和DF机器人电机屏蔽。我的问题是这个编码不能编译。有人可以告诉我一些关于我的错误在哪里以及我该怎么做的事情?

错误消息:

  

错误:从初始化列表转换为'const String'将使用显式构造函数'String :: String(int,unsigned char)'

表示该行

if ( y >= 5 ){ //car forward

1 个答案:

答案 0 :(得分:1)

编译信息应该会有所帮助。

首先是:

  

sketch_may17a:37:错误:转换为&#39; const String&#39;从初始化列表中将使用显式构造函数&#39; String :: String(int,unsigned char)&#39;

原因是y是一个字符串,你用数字比较法(例如):

if( y >=5 )

将其替换为:

    if( y.toInt() >= 5 )