我正在尝试设置一个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
我希望得到任何结果;即使错了但它会返回“重复大小写值”