PROGRAMA DE CONTROL DEL COCHE S4A

Objetivos

 

  • Aprender a utilizar el controlador de motores L298N.
  • Comprobar las conexiones Arduino-L298N-motores.
  • Crear el programa para controlar el coche con el teclado del ordenador.[/three-fourth]
  •  

    Material requerido.

    Vista principal  Robot educativo

     

    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 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.

    • Podemos darles un valor de 0 a 255, aunque os recomendamos que no le pongáis un valor demasiado alto ni demasiado bajo.
    • 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 potencia.[/fancy-ul] [/three-fourth]

    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, y funcionan de la siguiente forma.

    • Si IN1 está a HIGH e IN2 a LOW, el motor A gira en un sentido
    • Si IN1 está a LOW e IN2 a HIGH lo hace en el otro.
    • Lo mismo con los pines IN3 e IN4 y el motor B.

    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 S4A.

    Haremos un pequeño programa en el que al pulsar la tecla de la flecha del teclado hacia arriba las ruedas se muevan, y que al hacerlo el coche se mueva hacia delante, teniendo en cuenta que consideramos la parte delantera la que tiene forma de parachoques.

    Vamos a suponer que el coche se va a mover hacia delante cuando tengamos IN1 (pin 13 de Arduino) a LOW, IN2 (pin 12) a HIGH, IN3 (pin 11) a LOW e IN4 (pin 10) a HIGH. Además le indicaremos la velocidad a lo que lo tiene que hacer con los pines ENA y ENB.

    Y haremos que lo haga cuando pulsemos la tecla con la flecha hacia arriba de nuestro teclado.

    coche s4a

    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 sino no pasa nada porque esto tiene fácil arreglo, y de hecho, podemos arreglarlo de varias formas.

    Podemos intercambiar las dos conexiones del motor que esté girando al revés de lo que buscamos, o de los dos motores si los dos lo hacen al revés. OUT1 y OUT2 para el motor A, y OUT3 y OUT4 para el motor B.

    Si os resulta complicado acceder a esos cables, también podéis intercambiar los pines que controlan el sentido de giro de los motores. Es decir, IN1 e IN2 para el motor A, e IN3 e IN4 para el motor B.

    Y si no queréis andar cambiando los cables podemos cambiar el programa. Sólo tendríamos que cambiar el estado de los pines que dan el sentido de giro del motor que queramos invertir. Si, por ejemplo, quisiéramos cambiar el sentido de giro del motor A, haríamos lo siguiente:

    invertir-direccion-motor

    Si lo corregís de cualquiera de las dos primeras formas, el resto del programa podéis seguirlo igual que el que vayamos haciendo nosotros. Si lo hacéis de la última forma, tendréis que tenerlo en cuenta también para el resto del programa y cambiarlo también para los demás movimientos.

     

    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. Primero vamos a hacer que se mueva hacia atrás, para lo que sólo necesitaremos invertir los pines 10 al 13 que controlan el sentido de giro.

    programa coche

    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.

    izquierda derecha coche s4a

    Y por último haremos que los motores se paren al pulsar la tecla «espacio».  Podéis descargar el programa completo aquí:

    coche-s4a.

     

    control coche s4a 

    Resumen de la sesión

     

    En esta sesión hemos aprendido varias cosas importantes:

  • Cómo controla el L298N con un Arduino.
  • A programar correctamente el movimiento del coche.
  • A utilizar las teclas del ordenador para interactuar con el Arduino.
  •