domingo, 13 de septiembre de 2015

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


Bienvenido a un nuevo tutorial de Lunegate, hoy vamos a analizar el driver para controlar motores DC (HG7881 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 (dado nuestro motor elegido, si usais uno de mayor par ira mejor), pero que para proyectos de robótica sencillos nos funcionara a la mil maravillas.

El HG7881 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 2.9 cm x 2.3 cm x 1.4 cm y un peso de 10 g.

El coste de driver es de 1,79€ (actualmente está rebajado), 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 Con reductora
(Review)
HG7881 Dual-Channel H-Bridge Motor Driver
Arduino Micro
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 esquemático 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(){
  move (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);".

Si lo que buscais es también controlar la velocidad es a través de este codigo que os añador ahora. ¡Pero! vereis que segun el motor algunas veces no os respondera si no marcais la máxima velocidad... es lo que tiene los componentes muy baratos.

//-- Primero los paramos 1 sg --
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay(1000);
//-- Marcamos dirección y velocidad --
digitalWrite( MOTOR_B_DIR, HIGH ); // direction: Hight = adelante
analogWrite( MOTOR_B_PWM, 255 ); // 255 = rapido (max velocidad)



PUNTUACIÓN

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


La valoración de este producto es por ahora el mejor driver para 2 motores de bajo coste, según valla comprando otros driver más caro os comentare los tiempos de respuesta, si se calientan, etc.



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.

0 comentarios:

 

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.