Como hacer Carro que EVITA OBSTÁCULOS

Buenas Noches, soy algo nuevo en esta plataforma Arduino y la verdad me es muy confuso, estoy programando un carro que evita obstáculos con un Ultrasónico, pero el código me marca error, no se que es lo que este mal, si alguien podría ayudarme, se los agradecería mucho, adjunto el código a continuación

/*CODIGO PARA CARRO QUE EVITA OBSTACULOS */


#include <Servo.h> 
#include <NewPing.h>
#include <AFMotor.h>  


NewPing Dist(A0, A1, 200); //(trig,echo,dist max)
Servo myServo; 


int distancia = 0;
int distanciaD = 0;
int distanciaIz = 0;
boolean Booleano = false;


AF_DCMotor Motor1(1, MOTOR12_1KHZ); 
AF_DCMotor Motor2(2, MOTOR12_1KHZ);
AF_DCMotor Motor3(3, MOTOR34_1KHZ);
AF_DCMotor Motor4(4, MOTOR34_1KHZ);


void setup() {
  Serial.begin(9600);
  myServo.attach(10);  
  myServo.write(115);
  delay(1000); 
  myServo.write(65);
  delay(500);
  myServo.write(160);
  delay(500);
  myServo.write(115);
}


void loop() {
distancia = medirDistancia();
if (distancia >= 25 && distancia <= 250)
{
  Adelante();
  Serial.println("MIRANDO HACIA DELANTE CON DISTANCIA DE:"+ String(distancia));
}
else if (distancia < 25)
{
  Frenar();
  delay(150);
  Reversa();
  delay(250);
  Frenar();
  delay(250);
  distanciaD = mirarDerecha();
  delay(250);
  distanciaIz = mirarIzquierda();
  delay(250);


  if(distanciaD >= distanciaIz)
    {
      GirarDerecha();
      Frenar();
    }
    else if(distanciaIz >= distanciaD)
    {
      GirarIzquierda();
      Frenar();
    }
  }
}


int mirarDerecha()
{
    myServo.write(60); 
    delay(350);
    int distancia = medirDistancia();
    Serial.println("MIRANDO HACIA LA DERECHA CON DISTANCIA DE:"+ String(distancia));
    return distancia;
}


int mirarIzquierda()
{
    myServo.write(165); 
    delay(350);
    int distancia = medirDistancia();
    delay(50);
    myServo.write(115); 
    Serial.println("MIRANDO HACIA LA IZQUIERDA CON DISTANCIA DE:"+ String(distancia));
    return distancia;
}


  int medirDistancia() 
  { 
    delay(10);
    int ditanciaCM = Dist.ping_cm();
    if(ditanciaCM <= 0 || ditanciaCM >= 250)
    {
      ditanciaCM = 250;
    }
    return ditanciaCM;
  }


void Frenar() {
  Motor1.run(RELEASE); 
  Motor2.run(RELEASE);
  Motor3.run(RELEASE);
  Motor4.run(RELEASE);
  Serial.println("FRENANDO");
 } 
  
void Adelante() {
 if(Booleano == false)
  {
    Booleano = true;
    Motor1.run(FORWARD);      
    Motor2.run(FORWARD);
    Motor3.run(FORWARD); 
    Motor4.run(FORWARD);
    Serial.println("IR A DELANTE");     
    controlVelocidad();
  }
}


void Reversa() {
    Booleano = false;
    Motor1.run(BACKWARD);      
    Motor2.run(BACKWARD);
    Motor3.run(BACKWARD);
    Motor4.run(BACKWARD);  
    Serial.println("REVERSA");
    controlVelocidad();
}  


void GirarDerecha() {
  Motor1.run(FORWARD);
  Motor2.run(FORWARD);
  Motor3.run(BACKWARD);
  Motor4.run(BACKWARD);  
  Serial.println("GIRAR HACIA LA DERECHA");   
  delay(400);  
} 
 
void GirarIzquierda() {
  Motor1.run(BACKWARD);     
  Motor2.run(BACKWARD);  
  Motor3.run(FORWARD);
  Motor4.run(FORWARD);   
  Serial.println("MIRANDO HACIA LA IZQUIERDA");
  delay(400);
} 


 void controlVelocidad(){
   for (int velocidad = 0; velocidad < 160; velocidad +=2) 
   {
      Motor1.setSpeed(velocidad);
      Motor2.setSpeed(velocidad);
      Motor3.setSpeed(velocidad);
      Motor4.setSpeed(velocidad);
      delay(3);
   }
  } 

Tu tema ha sido movido a la sección en español del foro porque usaste el idioma español.

Utiliza el idioma inglés en las secciones en inglés del foro.

Ayudaría muchísimo si, tal y como lo hiciste con el código, adjuntaras el reporte de error y nos contaras qué hardware usas (placa Arduino, shield, etc).

Agrego:

La simulación en wokwi para una placa UNO no solo no arroja ningún error sino que además parece funcionar según lo esperado.
Sé más específico y detallado sobre el error que mencionas

C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AFMotorController::AFMotorController()'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AFMotorController::AFMotorController()'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AFMotorController::latch_tx()'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AFMotorController::enable()'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_DCMotor::AF_DCMotor(unsigned char, unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_DCMotor::AF_DCMotor(unsigned char, unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_DCMotor::run(unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_DCMotor::setSpeed(unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_Stepper::AF_Stepper(unsigned int, unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_Stepper::AF_Stepper(unsigned int, unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_Stepper::setSpeed(unsigned int)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_Stepper::release()'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_Stepper::onestep(unsigned char, unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `microstepcurve'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\libraries\Adafruit_Motor_Shield_library\AFMotor.cpp.o (symbol from plugin): In function `AFMotorController::AFMotorController()':
(.text+0x0): multiple definition of `AF_Stepper::step(unsigned int, unsigned char, unsigned char)'
C:\Users\Usuario21\AppData\Local\Temp\arduino\sketches\55B08BF41201B8A3655775767FA9D02A\sketch\Carro-Sensor.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Se encontraron varias bibliotecas para "Servo.h"
  Usado: C:\Users\Usuario21\Documents\Arduino\libraries\Servo
  No utilizado: C:\Users\Usuario21\AppData\Local\Arduino15\libraries\Servo
exit status 1

Compilation error: exit status 1

Es lo que me Arroja
Estoy utilizando un Arduino Uno y un Drivers

Moderador:
Por favor, lee las Normas del foro y publica/edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado/editado, lo cortas y click en (<CODE/>)


Te respondo pero edita antes de responder

Ve a C:\Users\Usuario21\Documents\Arduino\libraries\ y asegúrate de que tengas solo una versión de la biblioteca Adafruit_Motor_Shield_library.

1 Like

Solo tengo un Adafruit_Motor_Shield_library, no se a que se daba el error

Realmente se resolvió?