Я использую ультразвуковой датчик 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 для переменной расстояния). Я довольно рано начинаю в этом, поэтому решение может быть чрезвычайно простым, и я просто не знаю этого.