domingo, 16 de agosto de 2015

Tutorial: Aprender a usar el driver para motores DC (L9110) con Arduino


Bienvenido a un nuevo tutorial de Lunegate, hoy vamos a analizar el driver para controlar motores DC (L9110 Dual-Chanel H-Bridge).


INTRODUCCIÓN

Este componente será muy útil para controlar 2 motores DC de bajo amperaje (máximo 1A) y con un par relativamente bajo, pero que para proyectos de robótica sencillos nos funcionara a la mil maravillas.

El L9110 es un circuito impreso compuesto por 2 chipset modelo L9110S, que trabajan entre 2,5v y 12v (recomendamos de 5 a 12 voltios) y con un amperaje de 800mA. Las dimensiones de este driver son de 3.1 cm x 2.2 cm x 1.2 cm y un peso de 7 g.

El coste de driver es de 3,53€, así que no hay escusa de comprarlo :P, podréis encontrar donde comprarlo en el desglose de componentes que vendrán a continuación.

Para este tutorial, se requerirá
Dificultad:

           Tiempo:  15 minutos (montarlo y programarlo)


MATERIAL NECESARIO

A continuación os describo el material necesario para realizar el tutorial y donde conseguirlo:

Imagen
Nombre producto
Donde comprarlo
Motor DC (para agua)
L9110 Dual-Channel H-Bridge Motor Driver
Arduino Uno
Conectores universales


MONTAJE

Bien una vez que disponemos de todos los componentes, vamos a ponernos manos a la obra. Para ello os dejo a continuación un esquematico de como debéis interconectar los diferentes componentes para que esto funcione.


Es importante mencionar, que actualmente estamos alimentando nuestro motor a 5v a través de nuestro driver. Este driver como hemos explicado arriba puede trabajar hasta 12v (pero nunca a más de 1 amperio), o lo quemaremos. Para poder conseguir llegar hasta 12v tendremos que suministrar este voltaje a través de un fuente externa (Esto lo haré en futuros tutoriales), pero básicamente seria alimentar el driver con la fuente externa en vez de con el Arduino.

PROGRAMACIÓN

Una vez montado todo correctamente (verificar las conexiones que eso trae mucho de cabeza). Conectamos nuestro Arduino a el ordenador y añadimos el código que os pongo a continuación:


int M1_Izq = 12; //Direccion
int M1_Derecha = 11; //Direccion

void setup()
{
  pinMode(M1_Izq, OUTPUT);
  pinMode(M1_Derecha, OUTPUT);
}

void loop(){
  girar (1);
  delay(1000); //1 sg
 
  stop();
  delay(250); //250ms

  girar (2);
  delay(1000); //1 sg
 
  stop();
  delay(250); //250ms
}


void girar(int direccion)
{
  boolean inPin1 = LOW;
  boolean inPin2 = HIGH;

  if(direccion == 1){
    inPin1 = HIGH;
    inPin2 = LOW;
  }
    digitalWrite(M1_Izq, inPin1);
    digitalWrite(M1_Derecha, inPin2);
}

void stop(){
    digitalWrite(M1_Izq, LOW);
    digitalWrite(M1_Derecha, LOW);
}


Como podemos observar en el código, trabaja en 2 direcciones a través de un booleano que debéis definirle en los 2 datos que le enviáis a través de la salida digital " digitalWrite(M1_Izq, inPin1); digitalWrite(M1_Derecha, inPin2);".


PUNTUACIÓN

Calidad Componentes
2
Montaje
4
Precio
4'5
Características
2'5
Puntuación Global
2


La valoración de este producto es de un 2 sobre 5. Lo que más penaliza a este producto, son la calidad de los componentes, ya que cuando llevas un rato usándolo, se calienta en exceso y empieza a perder eficiencia (llegando incluso a pararse).
Es una pena porque por lo demás cumple su cometido, ya que es un driver para 2 motores, muy pequeño, muy barato y muy sencillo de usar.



Tags: ,

Ude

Eduardo Parada Pardo

Soy desarrollador e investigador en robótica, me gusta aprender nuevas tecnologías y todo lo relacionado con el mundo de la robótica. Si te gusta este blog, no dudes en preguntar cualquier duda.

2 comentarios:

Jesús Muñoz dijo...

Buen artículo Eduardo,

tengo en mente un proyecto para controlar los 4 motores de un dron.
Me gustaría usar el componen L9110S para el control.

Te quería preguntar si es posible controlar estos motores. Aquí las características:
http://artofcircuits.com/product/coreless-motor-7mmx20mm-cw-and-ccw-pair-for-syma-x5-x5c-x5c-1.

La batería sería una 3.7V 720mAh.

¿Podría servir el módulo L9110S para mi proyecto? Si no ¿Que tengo que mirar? ¿Que otro módulo lowcost podría emplear?

Estuve leyendo un artículo de Microchip explicando como elegir un driver MOSFET
(http://ww1.microchip.com/downloads/en/AppNotes/00898a.pdf), pero no entendí muy bien.

Ude dijo...

Muy buenas,
primero de todo, que tamaño quieres que sea el dron?, te lo digo por que por lo general se usan motores Bushless y el driver para manejar con alta precision estos motores se usan variadores Bushless. Estos son capace de dar una potenica constante de hasta 20A.

En este link, abajo del todo hay un pdf descargable del quadcopter que construi.
http://www.lunegate.net/2012/12/construir-quadcopter-autonomo-proyecto.html

A ver si te sirve de ayuda.

 

Productos y tecnologias usadas en este blog:

  • No te pierdas ninguna entrada

    Subscribete aquí en nuestro newsletter y ¡no te pierdas nada!

    Copyright © LuneGate™ is a registered trademark.
    Designed by Templateism. Hosted on Blogger Platform.