L298N
Como ya se ha visto anteriormente, un pin de Arduino solo puede tener los valores de 0 y 5 voltios y dar hasta 40 mA. Esto es insuficiente para mover un motor del tipo que sea, por lo tanto si queremos que Arduino maneje un motor, deberemos usar un driver.
Un motor driver es un amplificador de corriente cuya función es tomar una pequeña señal de control de baja corriente y convertirla en una señal de alta corriente que pueda alimentar el motor.
Hay muchos tipos de motor drivers en función del motor a manejar, máximo voltaje, máxima corriente de salida, etc…
Motor DC
Un motor de corriente continua convierte la energía eléctrica en mecánica. Se compone de dos partes: el estator y el rotor. El estator es la parte mecánica del motor donde están los polos del imán. El rotor es la parte móvil del motor con devanado y un núcleo, al que llega la corriente a través de las escobillas. Si queremos cambiar el sentido de giro del rotor, tenemos que cambiar el sentido de la corriente que le proporcionamos al rotor, basta con invertir la polaridad de la pila o batería.
Para controlar un motor DC desde Arduino, tendremos que usar un driver para motores para proporcionar más corriente al motor ya que las salidas del Arduino sólo dan hasta 40mA. Con el driver podemos alimentar el motor con una fuente de alimentación externa.
Este módulo permite controlar hasta 2 motores de corriente continua. También permite controlar el sentido de giro y velocidad.
Características
Voltaje de alimentación, mínimo de 5 V. Posee dos entradas, una de 5V para controlar la parte lógica y otra para alimentar las salidas al motor, que pueden ser de 5V o más.
La tarjeta tiene la opción de habilitar un regulador LM7805 integrado en ella para alimentar la parte lógica con lo que se puede alimentar la tarjeta con 12V por ejemplo.
Corriente máxima 2 Amperios.
Posee 6 entradas de control (ver tabla de control)
Admite entradas de señal PWM para el control de velocidad.
Dimensiones: 43 mm x 23,9 mm x 43 mm.
Salidas: para 2 motores de DC.
Conozcamos el controlador L298N.
Para entender el funcionamiento del L298N, primero tenemos que conocer el puente H.
El L298N utiliza un integrado para controlar motores DC que usa el sistema puente en H. Es un sistema para controlar el sentido de giro de un motor DC usando cuatro transistores y también permite controlar la velocidad del motor. En la imagen vemos que los transistores se comportan como interruptores y dependiendo que transistores conducen y cuáles no cambia la polarización del motor, y con esto el sentido de giro.
El puente H está compuesto principalmente por 4 interruptores, los cuales se accionan de dos en dos. En la primera imagen activamos los interruptores 1 y 4, así el positivo le llega al motor por la borna derecha y el motor gira en sentido de las agujas del reloj.
En la segunda imagen, desactivamos los interruptores 1 y 4 y activamos los interruptores 2 y 3, de esta forma el positivo le llega al motor por la borna izquierda y el motor gira en sentido antihorario.
Estos interruptores se pueden sustituir por componentes electrónicos que hagan la misma función, como por ejemplo, transistores y relés.
El L298N tiene en su interior dos puentes H y proporciona 600mA al motor y soporta un voltaje entre 4,5V y 36V tal y como pone en la hoja de datos.
El módulo controlador de motores L298N nos permite controlar la velocidad y la dirección de dos motores de corriente continua de una forma muy sencilla. También nos permite invertir el sentido de la corriente, y de esta forma podemos invertir el sentido de giro del motor.
El rango de tensiones en el que trabaja este módulo va desde 3V hasta 35V, y una intensidad de hasta 2A. A la hora de alimentarlo hay que tener en cuenta que la electrónica del módulo consume unos 3V, así que los motores reciben 3V menos que la tensión con la que alimentemos el módulo.
Además el L298N incluye un regulador de tensión que nos permite obtener del módulo una tensión de 5V, perfecta para alimentar nuestro Arduino. Eso sí, este regulador sólo funciona si alimentamos el módulo con una tensión máxima de 12V.
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á puesto, activaremos el regulador de tensión del L298N, y tendremos una salida de 5V, que podremos usar para lo que queramos, por ejemplo para alimentar una placa Arduino.
Si quitamos el jumper, desactivaremos el regulador y 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.
El resto de conexiones se usan de una u otra forma dependiendo si vamos a manejar dos motores de continua o un motor paso a paso. En esta sesión nos vamos a centrar en el control de motores DC que son los que usamos en las ruedas.
Las salidas para los motores A y B nos darán la energía para mover los motores. Tened en cuenta la polaridad al conectarlos, para que cuando más tarde hagamos que se muevan hacia adelante, funcionen correctamente. Si no fuera así, no tendríamos más que invertir las conexiones.
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.
Atención: Para hacer que los motores funciones correctamente, debemos tener puestos los jumpers ENA y ENB. Sin embargo, 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 PWM de Arduino 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 siempre a la misma velocidad.