我正在使用显示距离的 HC-SR04 超声波传感器,有两个 if 语句,如果它低于 0,则显示为 0(该部分按预期工作),如果超过 4 米(距离变量为厘米),则为应该说“超出范围”,这就是我遇到的问题。这是完整的代码
const int TrigPin = 2;
const int EchoPin = 3;
float distance;
void setup() {
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
}
void loop () {
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
distance = pulseIn(EchoPin,HIGH)/58.0; // divided by 58 to change into cm
if(distance < 0) {
distance = 0;
}
if(distance > 400) {
distance = "Out of range";
}
Serial.println(distance );
}
这会返回一个错误,上面写着“无法在赋值中将 'const char [13]' 转换为 'float'”(第 26 行),有没有办法在不使用新变量的情况下转换距离变量?(距离变量已经有另一个 if 语句)。我是一个很早的初学者,所以解决方案可能非常简单,我只是不知道。