aprenderoboticaytecnologia

Aprender Robótica Tecnología logo

5.2.- Actividad didáctica: Motores

Durante esta segunda actividad didáctica, aprenderemos como controlar motores con arduino. En este caso, a conectar y controlar motores DC en un chasis que usaremos en nuestro coche robot. Para ello, utilizaremos una placa de Arduino UNO y módulo L293D, que vimos en un post anterior, alimentando dicho circuito electrónico con una pila de 9 voltios (también podemos usar 4 pilas tipo AA). Durante esta actividad veremos como girar los motores en ambas direcciones, usando 4 motores distintos, de tal manera que haremos que giren hacia adelante, hacia atrás. También combinaremos los motores para que el coche robot pueda girar hacia la derecha y hacia la izquierda.

Materiales necesarios

Código fuente con Arduino

Vamos a crear una librería con las funciones y variables que usaremos en esta actividad didáctica, para poder controlar motores con Arduino. Es decir, para poder realizar las acciones con los motores DC, es decir, mover todos los motores hacia delante, hacía atrás, y también combinar motores para girar a la derecha y a la izquierda. En el anexo 2 de este blog, podemos ver como crea una librería en Arduino.

Fichero de cabecera

Llamaremos a nuestra nueva librería MotorsLib, y el fichero de cabecera, con extensión .h, tendremos las siguientes definiciones y variables y mostramos a continuación:

MotorsLib_h

Código fuente

A continuación, se muestra el fichero con extensión .cpp que contiene la implementación de los métodos y funciones descritas en el fichero anterior, esto es el código fuente de la librería:

MotorsLib_cpp

Sketch de Arduino

Para poder probar la librería que acabamos de crear para controlar los cuatro motores DC que moverán nuestro coche robot con la placa Arduino UNO, y un módulo L293D, vamos a crear el sketch con el IDE de Arduino siguiendo el Anexo 1, que mostraremos a continuación, y explicaremos más detalladamente:

U2_Motors

Lo primero que hacemos es incluir las librerías que usaremos en nuestro sketch de pruebas, en este caso nuestra librería MotorsLib.h que hemos creado anteriormente.

Con el comando MotorsLib motorsLib(13, 8, 12, 11, 9, 10), estamos creado un variable de nuestra librería, y la estamos inicializando con los pines enable1, enable2, input1, input2, input3 e input4 del módulo L293D, con los pines digitales 8, 9, 10, 11, 12 y 13 de nuestra placa Arduino UNO.

Luego tenemos el método void setup(). Este método siempre estará en todos nuestros sketchs de Arduino. Será donde inicialicemos las variables y demás de nuestro proyecto. Como podéis ver, hemos marcado los pones 8, 9, 10, 11, 12 y 13 como pines de salida OUTPUT, hemos marcado la frecuencia de nuestro proyecto a 9600, y hemos hecho una espera DELAY de 100 milisegundos. Además, hemos llamada a la función para los motores PararMotores de nuestra librería.

Por último, tenemos el método void loop(), el cual también estará presente en todos nuestros sketchs. Este se ejecuta constantemente en bucle a la velocidad o frecuencia que hemos marcado anteriormente en el método setup. En nuestro sketch de test, hemos creado un bucle que lee desde teclado una letra. En función de la letra que enviemos, realizará una acción diferente con los motores DC, llamando a distintas funciones que hemos implementado anteriormente en nuestra librería.

Como controlar motores en Arduino

Para realizar el diseño electrónico de la actividad didáctica, consistente en como controlar motores en Arduino. En este caso, en controlar varios motores DC, montados en un chasis y conectando con nuestro Arduino UNO mediante el módulo L293D. Podemos ayudarnos previamente de la herramienta online TinkerCad. En el anexo 3 podemos ver más detalle sobre esta herramienta muy útil para probar el diseño e implementación de nuestros circuitos electrónicos.

Como conectar motores en Arduino

Tinkercad – Actividad didáctica 2: Motores DC usando módulo L293D

Para llevar a cabo nuestro circuito electrónico, lo primero que haremos será construir el coche robot con las piezas y los 4 motores DC en sus respectivos lugares. Lo podemos ver en la siguiente imagen:

Chasis con motores en Arduino

>Chasis y motores 4 DC

A continuación, vamos a anclar el módulo L293D en la protoboard. En las siguientes imágenes, podemos ver los pines y la funcionalidad de cada pin que tiene el módulo L293D. Así, sabremos donde tenemos que conectar cada pin en el protoboard, en cada uno de los motores DC, o directamente en nuestra placa de Arduino UNO.

L293D para conectar motores en Arduino

Pines y funcionalidad del módulo L293D

Pasos para conectar los pines
  • Paso 1:
    Teniendo en cuenta las especificaciones de este módulo electrónico, y las salidas que tiene de tierra GND y alimentación 5V, conectaremos los siguientes pines a las filas de la protoboard pintados para conectar salidas de polo negativo (-) GND y positivo (+) 5V.

        – Conectar los pines 4, 5, 12 y 13 a GND (tierra) a la fila de polo negativo (-) de la protoboard.
        – Conectar el cable de GND (tierra) de la pila de 9V a la fila de polo negativo (-) de la protoboard.
        – Conectar el pin 16 a la fila de polo positivo (+) de la protoboard.
        – Conecta el pin 8 al polo positivo (+) de la pila de 9V, y también al pin Vin de la placa Arduino UNO.
        – Conectar uno de los pines GND (tierra) de la placa Arduino UNO a la fila de polo negativo (-) de la protoboard.
        – Conectar el pin 5V de la placa Arduino UNO a la fila de polo positivo (+) de la protoboard.
  • Paso 2:
    Ahora conectaremos cada uno de los 4 motores DC a la protoboard. Cada motor DC posee un cable rojo y uno negro, y esto debe coincidir para que los motores giren todo el mismo sentido, como podemos ver en la siguiente imagen:

    Motor DC

    Motor DC

    Además, hay que tener en cuenta que dos de los cuatro motores irán conectados a la salida 1 y salida 2 del módulo L293D, y los dos otros motores irán conectados a salidas 3 y 4 del módulo L293D.

        – Conectar el cable negro de los motores superior izquierdo e inferior izquierdo al pin 3 (salida 1).
        – Conectar el cable rojo de los motores superior izquierdo e inferior izquierdo al pin 6 (salida 2).
        – Conectar el cable negro de los motores superior derecho e inferior derecho al pin 14 (salida 4).
        – Conectar el cable rojo de los motores superior derecho e inferior derecho al pin 11 (salida 3).
  • Paso 3:
    Por último, sólo queda conectar el módulo L293D a nuestra placa Arduino UNO. Los pines GND (tierra) y 5V de la placa Arduino UNO ya los conectamos a la protoboard en el paso 1. Por lo que sólo nos queda conectar los pines digitales de la placa Arduino UNO al módulo L293D, que permitirán controlar y mover todos los motores hacia delante o hacía atrás. Y también combinar motores para girar a la derecha y a la izquierda. De manera que:

        – Conectar el pin 1 (enable12) del módulo L293D al pin 13 de la placa Arduino UNO.
        – Conectar el pin 2 (entrada1) del módulo L293D al pin 12 de la placa Arduino UNO.
        – Conectar el pin 7 (entrada2) del módulo L293D al pin 11 de la placa Arduino UNO.
        – Conectar el pin 9 (enable34) del módulo L293D al pin 8 de la placa Arduino UNO.
        – Conectar el pin 10 (entrada3) del módulo L293D al pin 9 de la placa Arduino UNO.
        – Conectar el pin 15 (entrada4) del módulo L293D al pin 10 de la placa Arduino UNO.

Una vez tengamos ya el circuito electrónico totalmente conectado y el sketch del código fuente cargado en la placa de Arduino UNO, ya podremos probar nuestra librería MotorsLib de esta Actividad didáctica 2. Y así, poder girar los motores en ambas direcciones, usando 4 motores distintos. De tal manera que, haremos que giren hacia adelante, hacia atrás, y también combinaremos los motores para que el coche robot pueda girar hacia la derecha y hacia la izquierda, con varios pines de nuestra placa Arduino UNO usando el módulo L293D.

Circuito electrónico como controlar robot en Arduino

Circuito electrónico con Arduino UNO

¡Descubre nuestro proyecto educativo coche robot con luces Led!