我正在尝试设置一个 arduino 红外传感器,当我尝试使用 switch 语句时,它返回“重复大小写值”。关于这个问题的任何建议或解释?顺便提一句。我是一个初学者,所以如果我犯了一些愚蠢的错误,请不要感到惊讶。
我尝试将 int 用于 val 变量,但它说有溢出,所以我使用 double 代替。我尝试查看与我的类似的其他一些问题,但它们都不适用于这里。
//code starts here
void loop() {
constexpr long double val[10]=
{16724175,16718055,16743045,16716015,16726215,16734885,16728765,16730805,16732845,16738455}; //holds all values from infrared sensor
int results_val;
if (reciever.decode(&results)){ //not relevant
Serial.println(results.value);
results_val = results.value;
reciever.resume();
}
switch(results_val){ //should check which button was pressed
case (int) val[0] : Serial.println(1);
break;
case (int) val[1] : Serial.println(2);
break;
case (int) val[2] : Serial.println(3);
break;
case (int) val[3] : Serial.println(4);
break;
case (int) val[4] : Serial.println(5);
break;
case (int) val[5] : Serial.println(6);
break;
case (int) val[6] : Serial.println(7);
break;
case (int) val[7] : Serial.println(8);
break;
case (int) val[8] : Serial.println(9);
break;
case (int) val[9] : Serial.println(0);
break;
}
}
//code ends here
我希望得到任何结果;即使错了;但它返回“重复的案例值”