【发布时间】:2021-03-24 09:37:55
【问题描述】:
我正在使用显示距离的 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 语句)。我是这方面的初学者,所以解决方案可能非常简单,我只是不知道。
【问题讨论】:
-
该错误在哪一行得到诊断?如果您引用完整的错误,那将被包括在内。
标签: c++ arduino-uno arduino-ultra-sonic serial-monitor