Function 'backward' was not declared in this scope (сообщение об ошибке)

Код:

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // ПОДКЛЮЧИТЬ PIN BT RX К 11-контактному разъему ARDUINO | ПОДКЛЮЧИТЕ КОНТАКТ BT TX К 10-КОНТАКТНОМУ КОНТАКТУ ARDUINO

char tiltDirection;
int motorInput1 = 2;
int motorInput2 = 3;
int motorInput3 = 4;
int motorInput4 = 5;

void setup() {

  pinMode(motorInput1, OUTPUT);
  pinMode(motorInput2, OUTPUT);
  pinMode(motorInput3, OUTPUT);
  pinMode(motorInput4, OUTPUT);

  digitalWrite(motorInput1, LOW);
  digitalWrite(motorInput2, LOW);
  digitalWrite(motorInput3, LOW);
  digitalWrite(motorInput4, LOW);

  Serial.begin(115200);      // Последовательная связь активируется на скорости 38400 бод/с.
  BTSerial.begin(38400);    // HC-05 скорость по умолчанию в AT-команде подробнее
}

void loop() {
  if (BTSerial.available()) {   // Ожидание данных, поступающих от другого модуля XBee
    tiltDirection = BTSerial.read();
    if(tiltDirection == 'F'){
      Serial.println("Forward");
        backward();
    }else if(tiltDirection == 'B'){
      Serial.println("Backward");
        forward();
    }else if(tiltDirection == 'R'){
      Serial.println("Right");
        right();
    }else if(tiltDirection == 'L'){
      Serial.println("Left");
        left();
    }else if(tiltDirection == 'S'){
      Serial.println("Stop");
        stopCar();
    }
  }
}

void forward()
{
  /*The pin numbers and high, low values might be different depending on your connections */
  digitalWrite(motorInput1, LOW);
  digitalWrite(motorInput2, HIGH);
  digitalWrite(motorInput3, LOW);
  digitalWrite(motorInput4, HIGH);
}
void reverse()
{
  /*The pin numbers and high, low values might be different depending on your connections */
  digitalWrite(motorInput1, HIGH);
  digitalWrite(motorInput2, LOW);
  digitalWrite(motorInput3, HIGH);
  digitalWrite(motorInput4, LOW);
}
void right()
{
  /*The pin numbers and high, low values might be different depending on your connections */
  digitalWrite(motorInput1, LOW);
  digitalWrite(motorInput2, HIGH);
  digitalWrite(motorInput3, LOW);
  digitalWrite(motorInput4, LOW);
}
void left()
{
  /*The pin numbers and high, low values might be different depending on your connections */
  digitalWrite(motorInput1, LOW);
  digitalWrite(motorInput2, LOW);
  digitalWrite(motorInput3, LOW);
  digitalWrite(motorInput4, HIGH);
}

void stopCar() {
  digitalWrite(motorInput1, LOW);
  digitalWrite(motorInput2, LOW);
  digitalWrite(motorInput3, LOW);
  digitalWrite(motorInput4, LOW);
}

Сообщение об ошибке:

C:\Users\amit1\Downloads\hand_gesture_control_car_receiver\hand_gesture_control_car_receiver.ino: In function 'void loop()':
hand_gesture_control_car_receiver:31:9: error: 'backward' was not declared in this scope
         backward();
         ^~~~~~~~
C:\Users\amit1\Downloads\hand_gesture_control_car_receiver\hand_gesture_control_car_receiver.ino:31:9: note: suggested alternative: 'forward'
         backward();
         ^~~~~~~~
         forward
Multiple libraries were found for "SoftwareSerial.h"
 Used: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial
 Not used: C:\Program Files (x86)\Arduino\libraries\SoftwareSerial-master
exit status 1
'backward' was not declared in this scope

В чем причина этого?

, 👍-1

Обсуждение

Это простая ошибка пользователя, и поэтому здесь она не по теме., @StarCat


1 ответ


1

Вы назвали функцию reverse, когда создавали ее, а не наоборот. В вашей программе нет ничего с обратным именем.

void reverse()
{
  /*Номера выводов и высокие и низкие значения могут различаться в зависимости от ваших подключений */
  digitalWrite(motorInput1, HIGH);
  digitalWrite(motorInput2, LOW);
  digitalWrite(motorInput3, HIGH);
  digitalWrite(motorInput4, LOW);
}
,

Что не так с этим ответом? Почему за это проголосовали? AFAIS это решение. Я использую UV, чтобы вернуть его к 0 ;-)., @Peter Paul Kiefer

комментария будет достаточно. вопрос не по теме. бесконечное количество такого рода вопросов может быть сгенерировано. это не имеет значения для сайта вопросов и ответов, @Juraj

Тогда минусуйте вопрос, а не ответ., @Delta_G

@Juraj Я здесь, потому что рад помогать другим. Я также думаю, что успех обмена стеками основан не только на предоставлении нам идеального сайта вопросов и ответов. Большая часть трафика генерируется от людей, которые являются новичками и имеют проблему, которая может быть нелепой для нас, но они застряли на ней и пытаются найти помощь. Если Delta_G хочет пожертвовать своим временем с ответом, я бы не стал осуждать его/ее (?) за это. Кроме того, добавленный код более читабелен в ответе. И ответ может быть принят и не беспокоить нас проверкой оставшихся без ответа вопросов или непринятых ответов в будущем., @Peter Paul Kiefer

Я проголосовал за то, чтобы закрыть вопрос, но это требует времени, пока другие не проголосуют. без ответа оно будет удалено через 30 дней. с ответом, набравшим 0 голосов, будет удален через год. с ответом на ответ он останется здесь навсегда. и поиск выдаст его по запросу "обратный мотор", @Juraj

спасибо @Delta_G это сработало хорошо, @cOde_monkey