Как решить проблему: expected primary-expression before '>' token

// defines pins numbers
const int trigPin = A0;
const int echoPin = A1;
// defines variables
long duration;
int distance;

#include <moving.h>
#include <Servo.h>

Servo servo;

moving car(6, 2, 3, 5, 4, 7, 11, 8, 9, 10, 12, 13); // setting up a new RC car with pins EN1, IN1, IN2, EN2, IN3, IN4, EN3, IN5, IN6, EN4, IN7, IN8

void setup() {
{
  for (int i=2; i<14; i++)
  {
    pinMode(i, OUTPUT);
  }
  servo.attach(10);
  servo.write(90);
}
{
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
}
}

void loop() {
  if (distance) > 10; // this is the problem
  car.set_speed(127);
  car.forward();
  delay(3000);
  if (distance) < 10; // and this
  car.set_speed(0);
  car.forward();
  delay(600);
  car.set_speed(127);
  car.right();
  delay(700);
  car.set_speed(127);
  car.forward();
  delay(700);
}

, 👍1

Обсуждение

if (distance > 10). Что должно быть в условии if? ; после него — пустая команда. Я уверен, что вы не хотите иметь условие для выполнения пустой команды. https://www.arduino.cc/reference/en/language/structure/control-structure/if/, @Juraj

@Juraj на 100% прав... Предположительно car.set_speed() и car.forward() должны выполняться условно? Иначе, в чем смысл оператора if()? Кроме того, должен ли delay() быть частью условно выполняемого кода? Или нет?, @Greenonline


1 ответ


2

Вокруг блока if необходимо заключить фигурные скобки.

if (distance > 10) { // это решает проблему
  car.set_speed(127);
  car.forward();
  delay(3000);
}

и т.д. Редактировать: Спасибо комментатору.

,

Этого недостаточно. Все условие должно быть заключено в скобки if (distance > 10) {, @Craig

Может быть, вы могли бы расширить свой ответ. Ваш ответ немного краток. Какие утверждения должны быть включены в блок {} и почему..? Также вам нужно исправить свое предложение в соответствии с комментарием @Craig., @Greenonline

@karlo: Сообщение об ошибке относится к строке 38, неправильно сформированному оператору 'if'. Вы, вероятно, имели в виду что-то вроде "if (distance < 10){ do something; } else { do somethingelse; }", но в том виде, в котором он написан, это не является правильным C или C++., @JRobert