jueves, 30 de junio de 2016

Tutorial: robot coche - Shield módulo de potencia L293D (4 motores DC)

En otro tutorial, se introdujo el módulo de potencia basado en el integrado L298N (ver entrada). En esta ocasión, se va a tratar el acondicionamiento de las intensidades de consumo del motor mediante una shield basada en un módulo de potencia con el integrado L293D.

Como recordatorio:

Motores: trabajan en un rango de tensiones que va desde los 3V hasta los 6 V y un consumo medio de 250 mA.

Arduino: capaz de suministrar sólo hasta 40 mA.

Partiendo de la premisa anterior, vamos a abordar el material que nos ha facilitado la tienda Banggood


Shield motor drive L293D (módulo de potencia) y Arduino Mega 2560 (vendidos en Banggood de forma conjunta, aquí).

Módulo de potencia

El módulo de potencia está integrado en una shield compatible tanto con Arduino UNO como Arduino MEGA. Tiene 2 integrados L293D, por lo tanto, se pueden controlar hasta 4 motores DC (2 por integrado) de forma bidireccional con un máximo de corriente de 600mA para cada motor. Además, se pueden añadir dos motores paso a paso (ver entrada) o dos motores servos (ver entrada).



Explicación inputs/outputs del módulo

En primera instancia, comentar que esta shield permite separar la alimentación del Arduino de los motores, pese a estar acoplada la Shield. Esto se hace mediante el "Power Jumper": estando cerrado la alimentación será conjunta y estando abierto, la alimentación será separada.

La alimentación de los motores se hace por las entradas +M y GND (Alimentación), conectando primero al positivo de la batería (si es un portapilas, cable rojo) y el negativo al GND (cable negro del portapilas)

La salida de los motores será por las bornas  A y  B. Se pueden quedar las bornas de GND sin usar.
IMPORTANTE conectar positivo y negativo de forma simétrica de los motores para que los motores giren en la misma dirección.

En la parte de los servos están las tres conexiones necesarias para los servomotores: positivo, negativo y la salida digital (marcados con +, - y S, respectivamente).

Programa

Se puede controlar los motores en modo todo o nada tal y como se resolvió con el anterior módulo, si bien es cierto que existe una librería para utilizar la shield que simplifica mucho  su uso.

Primero, se descarga la librería en el siguiente enlace y luego se procede a su instalación.

El programa será el siguiente

#include <AFMotor.h> //incluir librería
AF_DCMotor Motor1(1); //definir que vamos a usar el motor 1 

void setup(){  
     Motor1.setSpeed(200); //definimos la velocidad del motor 1
     Motor1.run(RELEASE);  // motor en punto muerto al iniciar el programa   
   }

void loop(){   
       Motor1.run(FORWARD); // orden de avanzar el motor
       delay (2000);

       Motor1.setSpeed(180); //cambio de velocidad del motor
       Motor1.run(BACKWARD); // orden de retroceder el motor
       delay (2000);
   }


Vídeo


Os animamos a subir vuestros vídeos del tutorial funcionando en nuestro Facebook o
nombrándonos en Twitter.

P.