Пытался написать программу, по которой робот доезжал бы до черной линии и поворачивал, делал на основе статьи и вики. Но при проверке выдает ошибки в коде. второй день пытаюсь найти, в чем проблема, но ничего не получается :с Подскажите пожалуйста, как можно это исправить, а то я уже все перепробовал Ошибки : 23 строка expected unqualified-id before 'else' 63, 70 строка a function-definition is not allowed here before '{' token 104 строка expected `}' at end of input Заранее спасибо)
У Вас не закрыта функция Код (Text): void turnLeft() { state = TURN_LEFT; analogWrite(SPEED_LEFT, SPEED / STOP); analogWrite(SPEED_RIGHT, SPEED); digitalWrite(DIR_LEFT, HIGH); digitalWrite(DIR_RIGHT, LOW); void setup() { А должно быть так Код (Text): void turnLeft() { state = TURN_LEFT; analogWrite(SPEED_LEFT, SPEED / STOP); analogWrite(SPEED_RIGHT, SPEED); digitalWrite(DIR_LEFT, HIGH); digitalWrite(DIR_RIGHT, LOW); } void setup() { Совет, делайте отступы, так ошибиться будет труднее, примерно так Код (Text): #define SPEED_LEFT 6 #define SPEED_RIGHT 5 #define DIR_LEFT 7 #define DIR_RIGHT 4 #define FRONT_SENSOR_PIN 8 #define BACK_SENSOR_PIN 9 #define SPEED 100 #define STATE_FORWARD 0 #define TURN_RIGHT 1 #define TURN_LEFT 2 #define STOP 4 int state = STATE_FORWARD; void runForward() { state = STATE_FORWARD; analogWrite(SPEED_LEFT,SPEED ); analogWrite(SPEED_RIGHT,SPEED); digitalWrite(DIR_LEFT, HIGH); digitalWrite(DIR_RIGHT, HIGH); } void goBack() { state = STATE_FORWARD; analogWrite(SPEED_RIGHT, SPEED); analogWrite(SPEED_LEFT, SPEED); digitalWrite(DIR_LEFT, LOW); digitalWrite(DIR_RIGHT, HIGH); } void turnRight() { state = TURN_RIGHT; // Замедляем правое колесо относительно левого, // чтобы начать поворот analogWrite(SPEED_RIGHT, SPEED / STOP); analogWrite(SPEED_LEFT, SPEED); digitalWrite(DIR_LEFT, HIGH); digitalWrite(DIR_RIGHT, LOW); } void turnLeft() { state = TURN_LEFT; analogWrite(SPEED_LEFT, SPEED / STOP); analogWrite(SPEED_RIGHT, SPEED); digitalWrite(DIR_LEFT, HIGH); digitalWrite(DIR_RIGHT, LOW); } void setup() { for(int i = 4; i <= 7; i++) pinMode(i, OUTPUT); } void loop() { bool front = !digitalRead(FRONT_SENSOR_PIN); bool back = !digitalRead(BACK_SENSOR_PIN); int targetState; if (front == back) { targetState = STATE_FORWARD; } else if (front) { targetState = TURN_LEFT; } else { targetState = TURN_RIGHT; } if (state == targetState) { return; } switch (targetState) { case STATE_FORWARD: goForward(); break; case TURN_LEFT: goBack(); break; case TURN_RIGHT: goForward(); break; } delay (100); } Да у Вас еще 1 ошибка, не определена функция goForward(), судя по коду должен быть вызов runForward(). Если прав, тогда поменяйте goForward() на runForward().