我无法将字符串与int连接起来

时间:2014-10-26 17:49:16

标签: arduino

我有以下代码来读取光传感器,转换为lux,与“lux”连接。并将其发送到我的SmartThings云。 最终我想要一个发送到SmartThings的值,格式为lux.110

void checkLux() { 
  float logLux = analogRead(lightPIN) * logRange / rawRange;
  int luxValue = pow(10, logLux); 
  String statusUpdate = "lux." + luxValue; 
  Serial.println(statusUpdate);
  smartthing.send(statusUpdate); 
  delay(1000);
}

上面的代码向串行监视器吐出了一些奇怪的字符组合,并且没有打印勒克斯。或勒克斯。 如果我添加这一行String luxString = "lux.";并修改下面的行,那么一切都很好。有关为什么我需要单独声明此字符串的任何想法。根据文档要么应该正常工作。

此外,如果对此代码块中的变量节省有任何建议。我还没那么好。

1 个答案:

答案 0 :(得分:3)

由于Arduino只使用C ++,因此大多数C ++函数也可以工作,所以不要仅限于Arduino's reference pages。 显然,String构造函数不支持数字,您必须首先使用String()函数将其转换为here。 或者我认为你可以添加这样的字符串:

String statusUpdate = "lux.";
statusUpdate += luxValue;

here
这与使用String的concat函数相同。

statusUpdate.concat(luxValue);