fh4

Objetivos

 

  • Aprender a utilizar el controlador de motores L298N.
  • Comprobar la dirección de giro de los motores.
  • Crear un programa para controlar el coche con el teclado del ordenador.[/three-fourth]
  •  

    Material requerido.

     

    Vista principal  Robot educativo

     

    FUNCIONAMIENTO DEL CONTROLADOR DE MOTORES L298N

    <  

    En la sesión anterior ya conectamos y explicamos cómo funciona el controlador, pero vamos a recordarlo un poco por encima antes de ponernos a programar.

    Para controlar el sentido de giro de los motores se utilizan los pines IN1 e IN2, para el motor A y los pines IN3 e IN4 para el motor B. Cada uno de ellos estará conectado a una salida digital del Arduino:

  • Las salidas digitales solo pueden tomar 2 valores: 0 y 1, HIGH y LOW, BAJO y ALTO, como prefiráis llamarles.
  • Si IN1 está a ALTO e IN2 a BAJO, el motor A gira en un sentido
  • Si IN1 está a BAJO e IN2 a ALTO lo hace en el otro.
  • Lo mismo para los pines IN3 e IN4 y el motor B.
  • Para controlar la velocidad de giro de los motores se utilizan los pines ENA y ENB, que hemos conectado a las salidas analógicas 6 y 5 de Arduino respectivamente.

     

  • Las salidas analógicas o PWM pueden tomar valores entre 0 y 255.
  • Si le damos un valor demasiado bajo, no será suficiente para mover los motores.
  • Si por el contrario le damos uno demasiado alto no vamos a tener suficiente potencia para mover las ruedas y hacer funcionar el Bluetooth que pondremos en la siguiente sesión.
  • Los componentes que sirven para comunicarse a distancia, como el Bluetooth, consumen mucha energía.
  • diagrama eléctrico

     

    COMPROBANDO EL SENTIDO DE GIRO

     

    Sabemos que con los pines IN1 a IN4 controlamos el sentido de giro de los motores, pero el problema que se nos presenta es que no tenemos forma de saber hacia qué dirección va a girar, así que lo haremos mediante ensayo y error. Para ello conectaremos el Arduino al PC y arrancaremos mBlock.

    Haremos un pequeño programa en el que al pulsar la tecla de la flecha del teclado hacia arriba el coche se mueva hacia delante, teniendo en cuenta que consideramos la parte delantera la que tiene forma de parachoques. Seleccionamos la categoría de bloques “Eventos” y arrastramos el bloque “al presionar la tecla …” al programa. En el menú desplegable tenemos que seleccionar flecha arriba.

    mblock

    Vamos a suponer que el coche se va a mover hacia delante cuando tengamos IN1  a BAJO (pin 13 de Arduino), IN2 a ALTO (pin 12), IN3 a BAJO (pin 11) e IN4 a ALTO (pin 10). Además le indicaremos la velocidad a lo que lo tiene que hacer con los pines ENA y ENB. Utilizaremos los bloques “fijar salida digital … a …” y “fijar pin PWM … a …” de la categoría “Robots”, y en ellos seleccionaremos las salidas que queremos usar y fijaremos su valor.

    mblock bloques

    Para comprobarlo encendemos el interruptor del coche y pulsamos la tecla hacia delante. Pueden pasar 4 cosas:

  • Que el coche se mueva hacia delante. ¡Perfecto! Hemos tenido suerte y no vamos a tener que cambiar nada.
  • Que el coche se mueva hacia detrás. Los dos se mueven al revés de lo que hemos supuesto.
  • Que el coche gire hacia la derecha. El motor B gira al revés de lo que hemos supuesto.
  • Que el coche gire a la izquierda. El motor A gira al revés de lo que hemos supuesto. 
  •  

    Bueno, pues si sois de la primera opción, felicidades, y si no lo sois tranquilos, porque tiene fácil arreglo. Simplemente tenéis que intercambiar los pines que controlan el sentido de giro del motor o los motores que estén girando al revés de lo previsto.  Es decir, IN1 IN2 para el motor A, e IN3 e IN4 para el motor B.

     

    PROGRAMACIÓN DEL COCHE

     

    Una vez que tenemos programado el movimiento hacia delante y tenemos claro cómo giran nuestros motores, el resto lo tenemos fácil. Para hacer que se mueva hacia atrás sólo necesitaremos invertir el estado de los pines 10 al 13 que controlan el sentido de giro.

    mBlock bloques

    Si lo que queremos es girar a la derecha, el motor A debería ir hacia delante y el B hacia atrás, y lo contrario para girar a la izquierda.

    mBlock bloques

    Y por último haremos que los motores se paren al pulsar la tecla “espacio”.

    [membership level=»1,2,3,4″]>

    mBlock bloques

    ¡Accede al contenido!

    Resumen de la sesión

    En esta sesión hemos aprendido varias cosas importantes:

  • Cómo funciona el controlador de motores L298N.
  • A comprobar los sentidos de giro de los motores.
  • Hemos hecho un programa para manejar el coche con el teclado del PC.
  • Deja una respuesta