Robotics | Arcade | Electronics

Cart

Your Cart is Empty

Back To Shop

Robot autónomo esquiva objetos

Robot Autónomo

En esta ocasión os traemos un post para desarrollar tu propio robot capaz de esquivar objetos. Este robot es una opción estupenda para los que quieran iniciarse en el mundo de la robótica ya que usa motores de corriente continua, controlador de motores, Arduino y sensor de distancia por ultrasonidos. Después de terminar este proyecto se abrirán las puertas de muchos otros proyectos más complejos.

Material necesario

Arduino UNO R3 Arduino UNO R3
Sensor de distancia Ultrasónico HC-SR04 Sensor de distancia Ultrasónico HC-SR04
Adaptador para sensores LRE-A Adaptador para sensores LRE-A
Controlador de Motores L298N Controlador de Motores L298N
Chasis Robot 2WD Chasis Robot 2WD
Cables para Protoboard Macho-Macho Cables para Protoboard Macho-Macho
Cables para Protoboard Cables para Protoboard Macho-Hembra

Conociendo el sensor HC-SR04 y el controlador de motores L298N

Sensor HC-SR04

Este sensor mide la distancia a la que se encuentran los objetos calculando el tiempo que tarda una señal de ultrasonidos en ir y volver a un objeto.

Características

  • Tensión de funcionamiento: 5V.
  • Distancia de detección: 1 a 500 cm.
  • Ángulo de detección: 20º.
  • 4 pines (Vcc, Echo, Triger, Gnd).

Esquema de conexión

hc-sr04 arduino leantec

Librería

Para facilitar el uso de este sensor tenemos esta librería:

Programa de test

Una vez que tengamos el sensor conectado, cargamos el siguiente código en nuestro Arduino y comprobamos que las medidas recogidas son las correctas.

// incluimos la librerias:
#include <Ultrasonic.h> 

Ultrasonic sensor(9,8,30000); // (Trig PIN,Echo PIN, microsegundos max "distancia máxima") 30000us = 5 metros

int distancia=0;//Declaramos la variable donde guardaremos la distancia


void setup() {
  
Serial.begin(9600);//Inicializamos el puerto serie    
  
}

void loop() {
  
  distancia=sensor.Ranging(CM);  // Medimos la distancia y la guardamos en la variable
  Serial.print("Distancia ");// Imprimimos la palabra distancia en el monitor serial
  Serial.print(distancia);// Imprimimos la variable distancia
  Serial.println(" cm");//Imprimimos las letras cm y saltamos de linea.
  delay (2000);//Esperamos 2 segundos para repetir el proceso.
  
    }

En la siguiente imagen tenemos un panatallazo del monitor serial cuando está corriendo el programa de test del sensor HC-SR04. En nuestro caso podemos comprobar como alternamos medidas más cortas y con otras más largas.

distancia hc-sr04 leantec

Controlador de motores L298N

Este controlador de motores permite manejar dos motores de corriente continua. Es una de las mejores soluciones que ofrece el mercado para el control de motores, ya que es capaz de controlar bastante potencia de forma segura y fácil.

Características

  • Doble puente H.
  • Alimentación de 6V a 48V.
  • Salida de 5V.
  • Intensidad por canal 2A.

Esquema de conexión

l298n arduino leantec

Para facilitar en leantec desarrollamos esta librería.

Nota:
Visita nuestro Post COMO CONTROLAR DOS MOTORES DE CORRIENTE CONTINUA de su interespara aprender más sobre este controlador.

Programa de test

Una vez que tengamos el driver conectado, cargamos el siguiente código en nuestro Arduino y comprobamos que los motores giren en el sentido esperado.

#include <LEANTEC_ControlMotor.h>//Incluimos la librería control de motores 
// Configuramos los pines que vamos a usar
ControlMotor control(2,3,7,4,5,6); // MotorDer1,MotorDer2,MotorIzq1,MotorIzq2,PWM_Derecho,PWM_Izquierdo

int velocidad=150;//Declaramos una variable para guardar la velocidad. 150 es la velocidad en la que empezará.

void setup() 
{ //En esta ocasión no necesitamos configurar pines ya que la librería lo hace.
} 
 
void loop() 
{//Un motor gira en sentido horario y el otro antihorario
//Si estuvierán montados en un robot el robot avanzaria. 
 while(velocidad<254){
 velocidad++;
 control.Motor(velocidad,1); 
 delay (200);}
//Un motor gira en sentido horario y el otro antihorario
//Si estuvierán montados en un robot el robot retrocedería. 
  control.Motor(-180,1);
  delay(3000);
//Los dos motores giran en sentido horario.
//Si estuvieran montados en un robot este giraria a la derecha. 
  control.Motor(200,100);
  delay(3000);
//Los dos motores giran en sentido antihorario.
//Si estuvieran montados en un robot este giraria a la derecha.  
  control.Motor(200,-100);
  delay(3000);
//Los motores se paran.
  control.Motor(0,1);
  delay(3000);
  
  velocidad=150;//Reseteamos la velocidad
  }

Montaje del chasis

Una vez que ya hemos conocido los principales componentes de nuestro robot, empezamos con el montaje. El primer paso, sería montar el chasis de dos ruedas 2WD. Como anotación, decir, que este robot tambien podría ser montado sobre el chasis de cuatro ruedas 4WD.

Vídeo-tutorial

Después montamos la electrónica sobre el chasis de forma que todo quede ordenado y accesible, para que así resulte más fácil localizar y resolver cualquier fallo si este apareciera.

Para instalar la electónica sobre el driver hemos usado silicona caliente para pegar el driver y el portapilas.(Se podría usar tambien cinta de doble cara)

No usamos los agujeros que tiene el chasis por que estos son muy standars y no queda la electrónica tan ordenada como deseamos. Estos agujeros los usamos solo para instalar Arduino.

portapilas robot
En esta imagen podemos ver como hacer la instalación con silicona caliente. Basta con aplicar un pequeño punto de silicona en el centro del componente que vayamos a instalar.
portapilas
Portapilas ya instalado.
arduino leantec
En el caso de Arduino, como hay agujeros que nos son útiles para su instalación, los usamos.
arduino leantec
En nuestro caso, pusimos unos separadores metálicos, aunque a alguno de ellos no se le puede roscar la tuerca por que los pines de Arduino están muy próximos.

Esquema de conexión

El siguiente esquema de conexión muestra como se conectan las diferentes placas que componen nuestro robot entre si.

conexión L298N leantec robot

Código

En este proyecto hemos desarrollado dos códigos.

El código nº1 es más sencillo. Con este código cuando el robot este a una distancia de X centímetros de un objeto, se parará y girará en un sentido para así esquivarlo.

#include <LEANTEC_ControlMotor.h>//Incluimos la libreria para el control de motores.
// Configuramos los pines que vamos a usar.
ControlMotor control(2,3,7,4,5,6); // MotorDer1,MotorDer2,MotorIzq1,MotorIzq2,PWM_Derecho,PWM_Izquierdo.

#include <Ultrasonic.h>//Incluimos la libreria para el control del sensor HC-SR04.
Ultrasonic sensor(9,8,30000); // (Trig PIN,Echo PIN, microsegundos max "distancia máxima") 30000us = 5 metros.

int velocidad_de_medida=5;//Variable para ajustar la velocidad de medida del sensor.
long int distancia=0;//Variable para almacenar la distancia medida. 
int aleatorio=0;//Variable para guardar un valor aleatorio. 

void setup() 
{ 
Serial.begin(9600);//Iniciamos el puerto serie
 
} 
 
void loop() 
{ 
 
  
  control.Motor(150,1);//El robot avanza en linea recta a una velocidad de 150.  
  distancia=sensor.Ranging(CM);//Medimos la distancia y la guardamos en la variable

  delay(velocidad_de_medida);//Delay para controlar la velocidad de medida.
 
 //Las siguientes lineas de código son para hacer comprobaciones de que todo esta bien.
 Serial.print("No obstaculo ");//Imprime la palabra No obstaculo.
 Serial.println(distancia);//Imprime la distancia.
 Serial.print("aleatorio ");//Imprime la palabra aleatorio
 Serial.println(aleatorio);//Imprime la variable aleatorio

 aleatorio=random (2);//Funcion aleatoria para hacer que el robot no gire siempre en el mismo sentido.
  
  
  while(distancia<30){//Mientras la distancia sea menor que 30 se mantiene en este bucler
        
  
  delay(velocidad_de_medida);//Delay para controlar la velocidad de medida.
  control.Motor(0,1);//El robot se para durante un segundo                 
  distancia=sensor.Ranging(CM);
  delay(1000);

  if(aleatorio==0){//Si la variable aleatorio vale 0 entra en este bucle.
 Serial.print("dentro 0");//Imprime dentro 0 para comprobar que entro.
 Serial.println(distancia);//Imprime la variable distancia
 Serial.print("aleatorio ");//Imprime la palabra aleatorio.
 Serial.println(aleatorio);//Imprime la variable aleatorio.
 
  control.Motor(170,100);//El robot gira a la derecha durante medio segundo.
  delay(500);}
  
  if (aleatorio==1){//Si la variable aleatorio vale 1 entra en este bucle.
 Serial.print("dentro 1");//Imprime dentro 1 para comprobar que entro.
 Serial.println(distancia);//Imprime la variable distancia
 Serial.print("aleatorio ");//Imprime la palabra aleatorio.
 Serial.println(aleatorio);//Imprime la variable aleatorio.
 
  control.Motor(170,-100);//El robot gira a la izquierda durante medio segundo.
  delay(500);}
  }
} 

El código nº2, es un poco más complejo. En este código el robot mide constantemente la distancia de los objetos que lo rodean, para así ir variando y girando las ruedas paulatinamente y evitar el objeto sin casi la necesiadad de parar.

/*Codigo desarrollado por Leantec Robotics&Electronics. Queda permitido el uso de este código por cualquier usuario sin animo de lucro. 
Queda totalmete prohibido el uso de este código con fines comerciales o con animo de luro.*/

// Incluimos la librería de los motores
#include <LEANTEC_ControlMotor.h>
// Configuramos los pines que vamos a usar
ControlMotor control(2,3,7,4,5,6); // MotorDer1,MotorDer2,MotorIzq1,MotorIzq2,PWM_Derecho,PWM_Izquierdo

// Agregamos la librería del ultrasonido.
// Se puede descargar de http://www.ardublog.com/library-for-arduino-ultrasonic-ranging-hc-sr04/
#include <Ultrasonic.h>
// Configuramos los pones y el delay máximo (Distancia)
Ultrasonic sensor(9,8,30000);   // (Trig PIN,Echo PIN, microsegundos max "distancia máxima") 30000us = 5 metros


// Declaramos las variables
long distancia=0;                // Almacenamos la distancia en esta variable
int sentido=1;                   // Sentido en el que va girar el robot.

// Esta función se usa para parar los motores, mas que nada para ahorrar espacio y no poner tantas veces el mismo código.
// Se llama a la función indicando el tiempo que quiere que estén los motores parados
void parada(uint16_t tiempo){
  control.Motor(0, 0);  // Para los motores
  delay(tiempo);        // Espera el tiempo que se le indique.
}

//----------------------------- Configuramos Ardunio ---------------------------------------
//------------------------------------------------------------------------------------------
void setup(void){
  sentido=1;                   // Iniciamos sentido en positivo
}
//--------------------------- Arrancamos el programa ---------------------------------------
//------------------------------------------------------------------------------------------
void loop(void)
{

  distancia=sensor.Ranging(CM);  // Guardamos la distancia en la variable
  
  //--------------------------------------------- Si hay mas de 1,5 metros -------------------------------------------
  if(distancia > 150){          
    sentido *= -1;          // Invertimos el sentido para usarlo cuando haya menos de 1 mentro (1 x -1 = -1) o (-1 x -1 = 1)
    control.Motor(255, 0);  // Avanzamos en línea recta a máxima potencia
  }
  //----------------------------------------- Si hay entre 1 metro y 1,5 metros ---------------------------------------
  else if(distancia > 100) {// Avanzamos pero no cambiamos el sentido ya en esta función
    control.Motor(255, 0);  // Avanzamos en línea recta a máxima potencia
  }
  //-------------------------------------------- Si hay entre 80 cm y 1 metro -----------------------------------------
  else if(distancia > 80) {
    control.Motor(220, 20*sentido);  // Avanzamos un poco mas lento y vamos girando 20% en el sentido que esté memorizado 
  }
  //--------------------------------------------- Si hay entre 50 cm y 80 cm ------------------------------------------
  else if(distancia > 50) {
    control.Motor(200, 60*sentido);  // Avanzamos un poco mas lento y vamos girando 60% en el sentido que esté memorizado 
  }
  //--------------------------------------------- Si hay entre 10 cm y 50 cm ------------------------------------------
  else if(distancia > 10) {
     control.Motor(150, 100*sentido);delay(300); // Giramos sobre el eje del robot durante 300 ms en el sentido que esté memorizado a una velocidad de 150
     parada(200);     // Paramos el robot unos 200ms para que le de tiempo al ultrasonido de reacciona
  }
  //----------------------------------------------- Si hay menos de 10 cm ---------------------------------------------
  else{
    control.Motor(-200, 0);delay(300);            // Damos marcha atras en línea recta a una velocidad de 200 durante 300 ms
    control.Motor(200, 100*sentido);delay(200);   // Giramos sobre el eje a una velocidad de 200 con el sentido memorizado durante 200 ms
    parada(200);     // Paramos el robot unos 200ms para que le de tiempo al ultrasonido de reacciona                               
  }
 
}

Imágenes del montaje

robot leantec
robot leantec
robot leantec arduino

Video de muestra

 

Esperamos que les sea de utilidad y no olviden que en nuestro blog encontrará muchos otros post de su interes.

38 thoughts on “Robot autónomo esquiva objetos

  1. Hola,
    Gracias por compartir el diagrama y código del proyecto que esta muy padre.

    Una duda en el diagrama de conexión sobre el controlador de motores, en el diagrama se ilustra conectar el «PWM_Derecho y PWM_Izquierdo» a los pines 5 y 6 del arduino, mi duda es como se hace la conexión al controlador de motores ya que este tiene un «jumper/puente» que une dos pines, Hay que retirar ese puente/jumper para la conexion?
    GRacias

  2. Hola. Tengo una duda sobre la alimentación. En el esquema veo que usas las 4 pilas para alimentar el L298N, pero no muestras como alimentar el arduino. Entiendo que puedo usar una batería diferente para arduino (uniendo los GND), pero mi duda es, puedo alimentar arduino con una batería y desde los 5V de arduino alimentar el L298N?

  3. Arduino:1.8.5 (Windows 8.1), Tarjeta:»Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»

    real_ios:13: error: no matching function for call to ‘Ultrasonic::Ultrasonic(int, int, int)’

    Ultrasonic sensor(9,8,30000); // (Trig PIN,Echo PIN, microsegundos max «distancia máxima») 30000us = 5 metros

    ^

    C:UsersbryanDesktopreal_iosreal_ios.ino:13:28: note: candidates are:

    In file included from C:UsersbryanDesktopreal_iosreal_ios.ino:11:0:

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:16:5: note: Ultrasonic::Ultrasonic(uint8_t, uint8_t)

    Ultrasonic(uint8_t trigPin, uint8_t echoPin);

    ^

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:16:5: note: candidate expects 2 arguments, 3 provided

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:15:5: note: Ultrasonic::Ultrasonic()

    Ultrasonic();

    ^

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:15:5: note: candidate expects 0 arguments, 3 provided

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: constexpr Ultrasonic::Ultrasonic(const Ultrasonic&)

    class Ultrasonic

    ^

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: candidate expects 1 argument, 3 provided

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: constexpr Ultrasonic::Ultrasonic(Ultrasonic&&)

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: candidate expects 1 argument, 3 provided

    C:UsersbryanDesktopreal_iosreal_ios.ino: In function ‘void loop()’:

    real_ios:37: error: ‘class Ultrasonic’ has no member named ‘Ranging’

    distancia=sensor.Ranging(CM); // Guardamos la distancia en la variable

    ^

    real_ios:37: error: ‘CM’ was not declared in this scope

    distancia=sensor.Ranging(CM); // Guardamos la distancia en la variable

    ^

    Se encontraron múltiples librerías para «Ultrasonic.h»
    Usado: C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04
    No usado: C:UsersbryanDocumentsArduinolibrariesGrove_Ultrasonic_Ranger
    exit status 1
    no matching function for call to ‘Ultrasonic::Ultrasonic(int, int, int)’

    Este reporte podría tener más información con
    «Mostrar salida detallada durante la compilación»
    opción habilitada en Archivo -> Preferencias.

  4. Arduino:1.8.5 (Windows 8.1), Tarjeta:»Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»

    real_ios:13: error: no matching function for call to ‘Ultrasonic::Ultrasonic(int, int, int)’

    Ultrasonic sensor(9,8,30000); // (Trig PIN,Echo PIN, microsegundos max «distancia máxima») 30000us = 5 metros

    ^

    C:UsersbryanDesktopreal_iosreal_ios.ino:13:28: note: candidates are:

    In file included from C:UsersbryanDesktopreal_iosreal_ios.ino:11:0:

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:16:5: note: Ultrasonic::Ultrasonic(uint8_t, uint8_t)

    Ultrasonic(uint8_t trigPin, uint8_t echoPin);

    ^

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:16:5: note: candidate expects 2 arguments, 3 provided

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:15:5: note: Ultrasonic::Ultrasonic()

    Ultrasonic();

    ^

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:15:5: note: candidate expects 0 arguments, 3 provided

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: constexpr Ultrasonic::Ultrasonic(const Ultrasonic&)

    class Ultrasonic

    ^

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: candidate expects 1 argument, 3 provided

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: constexpr Ultrasonic::Ultrasonic(Ultrasonic&&)

    C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04src/Ultrasonic.h:11:7: note: candidate expects 1 argument, 3 provided

    C:UsersbryanDesktopreal_iosreal_ios.ino: In function ‘void loop()’:

    real_ios:37: error: ‘class Ultrasonic’ has no member named ‘Ranging’

    distancia=sensor.Ranging(CM); // Guardamos la distancia en la variable

    ^

    real_ios:37: error: ‘CM’ was not declared in this scope

    distancia=sensor.Ranging(CM); // Guardamos la distancia en la variable

    ^

    Se encontraron múltiples librerías para «Ultrasonic.h»
    Usado: C:UsersbryanDocumentsArduinolibrariesUltrasonic_hc_sr04
    No usado: C:UsersbryanDocumentsArduinolibrariesGrove_Ultrasonic_Ranger
    exit status 1
    no matching function for call to ‘Ultrasonic::Ultrasonic(int, int, int)’

    Este reporte podría tener más información con
    «Mostrar salida detallada durante la compilación»
    opción habilitada en Archivo -> Preferencias.

  5. hola buena tarde disculpa y tendras algun codigo para que tambuen se pueda controlar manual desde mi celuar y a la vez tenga un boton para que sea autonomo

  6. Hola buenas, tengo el robot pero con 4 motores y tenia la duda de si el mismo codigo que se utiliza para los motores en este tutorial se puede utilizar para programar los 4 motores.

    Si no es posible, ¿me podriais decir un tutorial para 4 ruedas y con el sensor también?

    Muchas gracias y muy buen tutorial.

  7. Cuelgo este post para agradecer a Leantec, y a su impagable servicio técnico, la ayuda prestada por ellos a la hora del montaje y programación de un kit que les compré.

    Con una atención al cliente semejante, únicamente puedo decir que Leantec es una empresa muy seria y responsable.

    Muchas gracias por todo.

  8. Hola,buenos días.
    He realizado el montaje del esquiva objetos pero uno de los dos motores gira con muy poca fuerza, incluso se queda trabado y he de empujarlo para que comience a andar. ¿Qué puede ser?

  9. hola, solo una pregunta, bueno 2, la primera es si puedo utilizar una bateria recargable de 9,6 v que quiero reciclar, y la otra cuestion es sobre el cableado, seria posible enchufar la bateria a la toma de corriente de la placa y de la placa sacar las salidas para el driver de los motores y para el sensor

  10. Hola, de nuevo yo, ya he solucionado el problema, era una tontería, por cierto he visto que sois paisanos mio, el próximo pedido os lo pido a vosotros.
    Es posible poner más sensores de ultrasonido??

  11. Hola, ante todo gracias por vuestro tutorial, a ver si os puedo explicar el problema que tengo, utilizo una arduino yun, no se si será ese el problema por que todo va bien, pruebo el sensor OK, pero tengo problemas con el controlador de motores, no hace nada, todos los pines están bien conectados, corrientes diferentes en controlador y arduino pero conectadas con GND, le llega corriente y enciende el piloto rojo pero no hace nada cuando subo el codigo??? en que estoy fallando, estará mal el controlador de motores???

  12. En el esquemas conectas el pin del sensor HC-SR04 VCC al GND y el GND al 5V del arduino. Entiendo que esto es un fallo del esquema. Por favor aclararlo.

    1. Buenas Francisco.

      Como bien indicas, si es un fallo, lo solucionaremos.
      Muchas gracias por la indicación.

      Un saludo
      Servicio técnico Leantec

    1. Buenas Manuel.

      ¿Alimentas Arduino y el controlador de motores con dos baterías diferentes?

      Si es así, ten en cuenta que tienes que unir GND de Arduino con GND del controlador.

      Un saludo.
      Servicio técnico Leantec

  13. Hola buenas, he montado un robot el cual tiene 4 ruedas en lugar de dos como los que muestran en las imágenes para un proyecto de robotica.
    Le he añadido el puente H sensor de proximidad y pantalla LCD, he realizado el conexionado en paralelo pero los motores no funcionan… esta alimentado a 9 v en puente en H y 5 v en arduino.
    Podrían decirme que puede suceder?
    Gracias

  14. Hola he observado que en el esquema de conexión del ultrasonidos el cable rojo esta conectado a GND y el negro a 5V, creo que es al revés de hecho lo he probado y no funciona.
    Os ruego lo aclaréis.
    Por otro lado comentaros que faltan los esquemas de conexión de muchos kit y es complicado sacarlos para un niño que este aprendiendo os recomendaría que documentarais mejor los kit para motivar a los chicos a visitar la web y animarse a montar por su cuenta.
    Un saludo.

    1. Hola, si, si usas nuestra librería, en esta función:
      control.Motor(150,1);//El robot avanza en linea recta a una velocidad de 150.
      Solo hay que poner un 1 en el segundo hueco.
      El primer número indica la velocidad a la que se mueve el robot y el segundo el giro que hace.
      Para el giro solo hay que poner valores comprendidos entre -100 y 100, siendo -100 giro en un sentido y 100 giro en sentido contrario.

  15. Tras montar el robot esquiva objetos, sólo se mueve la rueda izquierda y con muy poca fuerza (tengo que hacerla girar con la mano para que arranque y si pongo el robot en el suelo no tiene fuerza para moverse). La rueda derecha no llega a girar.

    Las tensiones medidas son 0.52V y 0.078V en las salidas hacia los motores izdo. y dcho..

    He cambiado las entradas en el L298N pero la única rueda que sigue girando es la izquierda. He alimentado directamente los motores y ambos giran correctamente.

    ¿Creen que pueda ser un fallo en la placa del L298N?

    1. Hola Antonio,

      ¿Qué tal?

      Le he hecho llegar su incidencia a nuestro Servicio Técnico. Como desde aquí no podemos acceder a su email y para una solución más personal, nos han comentado que le hagas llegar una copia de este mensaje desde su email a la dirección tuproyecto@leantec.es (Servicio Técnico leantec.es). Ellos ya están informados de la situación.

      Esperamos sus noticias.

      Un saludo,
      At. al Cliente leantec.es

  16. Hola, acabo de recibir un robot 2WD, y los archivos que me descargo no puedo leerlos por que dice que están dañados.
    Un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cart

Your Cart is Empty

Back To Shop