Está en la página 1de 7

OBJETIVOS:

 Explicar cómo funciona el controlador de motores


 Montar el Arduino y el L298N (puente H) en el chasis.
 Realizar las conexiones eléctricas.

CONTROLADOR DE MOTORES L298N (Puente H)

Podemos manejar motores de corriente continua (CC) en S4A, utilizando directamente los pines de
salida analógica de Arduino y un transistor. Pero nuestro honorable Arduino está limitado por la
intensidad que puede proporcionar al motor, y va a ser insuficiente cuando queramos usarlo para
controlar motores de mayor potencia. Podríamos decir que la potencia es la velocidad con la que
se consume energía.

La potencia eléctrica, si hablamos de corriente continua, es el producto de la tensión por la


intensidad, es decir P=V x I, y se mide en Watts.
Por lo tanto, cuando queramos trabajar con motores un poquito potentes vamos a tener que
utilizar unos componentes a los que llamamos controladores de motores o drivers. Estos
controladores nos permitirán suministrar la potencia necesaria a los motores y os controlaremos
utilizando nuestros Arduinos.

Hay muchísimos controladores diferentes, pero nosotros nos hemos decidido por el L298N por su
facilidad de uso y su reducido precio, y porque nos permite elegir los pines del Arduino que
queremos usar para controlar los motores. El L298N puede trabajar con tensiones hasta 35V y una
intensidad de hasta 2A por canal por canal, con lo que puede manejar hasta 4A en total y unos
25W. Algunos controladores de motores (y muchos otros componentes) se montan directamente
encima del Arduino, y los denominamos shields. Estos shields se reservan directamente ciertos
pines para su uso y disfrute, así que no suelen ser recomendables para usar con S4A, ya que
raramente nos coincide correctamente la función de los pines en S4A y en el controlador.

Este módulo tiene además otra característica muy importante, y es que nos permite controlar la
dirección de giro de los motores, es decir podremos hacer que giren en ambos sentidos, algo
totalmente necesario para nuestro coche.

Además nos permite obtener del módulo una tensión de 5V, perfecta para alimentar nuestro
Arduino sin tener que utilizar otra fuente adicional. Eso sí, este regulador sólo funciona si
alimentamos el módulo con una tensión máxima de 12V. En nuestro caso son 4 pilas de 1.5V,o
sea, 6V.
 Un jumper es un componente que nos sirve para conectar dos pines.
La entrada de tensión Vin admite tensiones entre 3V y 35V, y justo a su derecha en la imagen
tenemos el pin que debemos conectar a GND.
La tercera conexión de ese grupo V lógico puede funcionar de dos maneras:
Si el jumper del regulador está cerrado activaremos el regulador de tensión del L298N, y en V
lógico tendremos una salida de 5V, que podremos usar para lo que queramos, por ejemplo para
alimentar una placa Arduino.
Si el quitamos el jumper desactivaremos el regulador, necesitaremos alimentar la parte lógica del
módulo, así que tendremos que meter una tensión de 5V por la conexión V lógico para que el
módulo funcione.
¡Cuidado! Si introducimos corriente por V lógico con el jumper de regulación puesto podríamos
dañar el módulo.
Además el regulador sólo funciona con tensiones hasta 12V en Vin, por encima de este valor
tendremos que quitar el jumper y alimentar la parte lógica del módulo desde otra fuente.
Los pines IN1 e IN2 nos sirven para controlar el sentido de giro del motor A, y los pines IN3 e IN4
el del motor B. Funcionan de forma que si IN1 está a HIGH e IN2 a LOW, el motor A gira en un
sentido, y si está IN1 a LOW e IN2 a HIGH lo hace en el otro. Y lo mismo con los pines IN3 e IN4 y el
motor B.
Para controlar la velocidad de giro de los motores tenemos que quitar los jumpers y usar los pines
ENA y ENB. Los conectaremos a dos salidas analógicas de forma que le enviemos un valor entre 0 y
255 que controle la velocidad de giro. Si tenemos los jumpers colocados, los motores girarán a
máxima velocidad.

MONTAJE DEL ARDUINO Y DEL L298N (PUENTE H) CONEXIONES ELÉCTRICAS


Una vez hemos montado el Arduino y el L298N, y sabemos cómo funciona este último, ya estamos
en disposición de realizar las conexiones eléctricas pertinentes. El esquema eléctrico sería el
siguiente:
Siguiendo con nuestras recomendaciones, creemos que lo más sencillo es conectar primero los
cables de alimentación y GND del soporte para pilas al L298N, pasando antes por el interruptor
que colocamos para poder encenderlo y apagarlo fácilmente.

El cable negro lo conectaremos directamente al GND del L298N, y será el cable rojo el que
pasaremos por el interruptor. Para ello lo cortaremos y lo soldaremos a una de las patas metálicas
del interruptor (da igual a cuál), y la parte sobrante de cable la conectaremos a la otra parte del
interruptor, y de ahí a la alimentación del módulo L298N.

El resto de cables los conectaremos como hemos visto en el esquema eléctrico, tratando de
utilizar cables de colores diferentes y de la forma más ordenada posible, para asumir el menor
riesgo a equivocarnos posible.
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.

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.

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

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.

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.
ARDUINO Y LOS MÓDULOS BLUETOOTH
Hasta ahora hemos tenido que mantener conectado el coche al PC continuamente con un cable, y
esto parece poco compatible con el concepto de coche teledirigido que cualquiera pueda tener en
la cabeza. Y para solucionar eso vamos a utilizar el Bluetooth, un concepto que seguro que os
suena a todos, sobre todo gracias a los smartphones y PCs.
Y como no podría ser de otra manera, existen unos módulos que se conectan a nuestro Arduino y
que nos servirán para otorgarle la capacidad de comunicarse vía Bluetooth con otros dispositivos
que también soporten esta tecnología.

Si nos fijamos en los pines 0 y 1 de Arduino veremos que al lado hay escrito Rx y Tx. ¿Qué significa
esto? Pues que estos pines sirven también para realizar la comunicación serie de la misma forma
que el cable que hemos utilizado hasta ahora. El pin 0 (Rx) se encarga de recibir datos y el pin 1
(Tx) de transmitir datos.

Así que si conectamos el módulo Bluetooth a esos dos pines podrá transmitir los datos que
lleguen desde otros dispositivos Bluetooth a nuestro Arduino, pudiendo prescindir de cables. En
nuestro caso buscamos recibir los datos que le lleguen desde un PC con Bluetooth y que estará
ejecutando S4A, desde controlaremos el coche.
Hay varios módulos Bluetooth para Arduino, y los más utilizados son el HC-05 y el HC-06.
Recomendamos utilizar el HC-06 porque es el más sencillo de conectar y de usar, y será el que
utilicemos en el coche..
El HC-06 tiene 4 pines, dos para la alimentación como ya es costumbre, y dos para comunicarse
con nuestro Arduino, rotulados como Rx y Tx. A la hora de conectarlo a nuestro Arduino tenemos
que conectar el Tx del módulo al Rx del Arduino, y el Tx del módulo al Rx del Arduino, de forma
que lo que envíe el módulo Bluetooth lo reciba el Arduino y viceversa. Pero de momento no
conectéis nada, ya explicaremos por qué.
Pero antes de poder utilizarlo de esta forma con el S4A, vamos a tener
que cambiar la configuración que tiene predeterminada en el HC-06. Así
que de momento no conectéis nada, ya explicaremos por qué.6.

CONFIGURANDO EL HC-06 PARA S4A


Para configurar el módulo vamos a tener que utilizar el IDE de Arduino,
el entorno de programación que se utiliza normalmente para programar
los Arduinos, y que utilizamos en la primera sesión del curso de S4A para
cargar el programa que nos permite usar S4A con nuestros Arduino. Si por alguna razón no tenéis
descargado el IDE, aquí tenéis el enlace que explica cómo hacerlo.
Ahora tenéis que descargar este archivo, que contiene el programa que configurará el
Bluetooth: configurar_hc-06_s4a. Lo que hace el programa es cambiar el nombre y la contraseña
del Bluetooth para que pongáis la que vosotros queráis, y configurar la velocidad de comunicación
para que sea la misma que utiliza el S4A y puedan “entenderse”.
Una vez hecho esto tenemos que cargar el programa en Arduino. Para ello no tenéis más que
conectar el Arduino al PC, pulsar en el icono con forma de flecha, y esperar a que en la parte de
abajo os aparezca la palabra “Subido”.
Y una vez hecho esto tendréis que desconectar el cable del ordenador y conectar el
módulo Bluetooth HC-06 de la forma que hemos indicado anteriormente y que podéis ver en la
siguiente imagen:
Y ahora sí, ya podéis volver a conectar el cable del ordenador. Cuando veáis que se enciende el
LED del Arduino que está conectado al pin 13 significará que ya ha terminado de configurarlo.
Una vez configurado habrá que volver a desconectar el Bluetooth del Arduino y cargar
el Firmware de S4A en el Arduino para poder volver a trabajar con S4A. Si no os acordáis cómo se
hacía o no tenéis el archivo con el Firmware guardado, echad un ojo a esta sesión en la que
explicamos cómo hacerlo.

 Si os preguntáis a que viene tanto conectar y desconectar la explicación es que mientras


tengamos conectados los pines 0 y 1 del Arduino, la conexión serie mediante el cable no
funciona y no nos permite cargarle programas.
 Por eso desconectamos el módulo para cargar el programa, y una vez cargado podemos
conectar el módulo Bluetooth y volver conectar el cable del ordenador para que se ejecute
el programa y configure el HC-06.
Y ya por fin podéis quitar el cable del PC, volver a conectar el HC-06 y pulsar el interruptor para
encender el coche.
UTILIZANDO EL BLUETOOTH CON S4A
Para conectar el PC en el que ejecutamos S4A y el HC-06 accedemos a la configuración
del Bluetooth de nuestro PC y ahí debería aparecernos el módulo con el nombre que le hayamos
puesto. Lo seleccionamos, escribimos la contraseña que hemos elegido y esperamos a que se
emparejen.

Entonces abrimos el entorno S4A y si todo ha ido bien, tras un momento de incertidumbre,
veremos cómo S4A detecta la placa. Por fin, abrimos el programa que tenemos de la sesión
anterior para controlar el coche y listo, a jugar con él.

Fuente: https://www.prometec.net/s4a-coche-bluetooth/
Armado auto: https://www.instructables.com/id/Smartphone-Controlled-Arduino-Rover/

Aplicación Android auto:


https://play.google.com/store/apps/details?id=appinventor.ai_el_profe_garcia.Arduino_Control_
Car&hl=en

También podría gustarte