Está en la página 1de 11

12/10/2017 Como controlar 2 motores de C.C.

con el L298N y Arduino

Sobre Nosotros... Contacte con nosotros Iniciar sesin

Buscar

Carrito: vaco

CATEGORAS

Actualidad Blog Como controlar 2 motores de C.C. con el L298N y Arduino

BLOG SEARCH

Search

RECENT ARTICLES

Aprender a programar con MakeBlock mar 17, 2017

Concurso para Black Friday 2016 #BlackFridayLeantec nov 16, 2016

Descuento para Profesores ago 23, 2016

Tutorial: Montaje del chasis Laserbot may 10, 2016

Tutorial Arduino: Modulo GPS GPS6MV2 abr 25, 2016

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 1/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

POPULAR ARTICLES

Como conectar Arduino a una red WIFi con el mdulo ESP8266 abr 02, 2015

Como controlar 2 motores de C.C. con el L298N y Arduino jun 23, 2015

Robot autnomo esquiva objetos sep 24, 2014

Control de acceso con Arduino y RFID. may 21, 2015

Como hacer una estacin meteorolgica con Arduino. sep 17, 2015

BLOG ARCHIVE

June-2014

July-2014

August-2014

September-2014

October-2014

November-2014

February-2015

March-2015

Aprill-2015

May-2015

June-2015

July-2015

August-2015

September-2015

October-2015

November-2015

December-2015

January-2016

February-2016

March-2016

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 2/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

Aprill-2016

May-2016

August-2016

October-2016

November-2016

March-2017

BLOG CATEGORIES

[44] Tutoriales

[0] Desarrollo

[5] Noticias

LATEST COMMENTS

Sherlyn Euceda on solo lo armo y ya ? de verada quiero que funciones

Elias Cepeda on Alex, antes de pasar el codigo debes subirle una pagina de codigo en blanco y luego subir este codigo, ya
he probado con varios codigos similares con ese error y asi puedo usar yo. Mira este video esta de lujo y es muy intuitivo.
(https://www.youtube.com/watch?v=kyX9cRxJNdo) (http://electricdiylab.com/mpu-6050-gyroscope-introduction-teapot-3d-
simulation/)

Jorge Andrs Romero on Me gustara saber cmo di pudiste solucionarlo con el arduino mega o lo tuviste que hacer con el
arduino uno. Gracias

Jorge Andrs Romero on Hola buenas tardes, primero que todo gracias por tan excelente tutorial. Soy nuevo en esto del
arduino. Tengo una pregunta. Primero tengo un arduino MEGA en vez del UNO (no cre que tenga problema) siguiendo el
pas a pas cada una de las indicaciones, en el monitor serial pueden pasar horas y no me arroja ningun tipo de dato, el gps
enciende el link, quiere decir que funciona as como el arduino funciona tambin, no se que pueda estar haciendo mal o que pueda
estar fallando, me podrian ayudar x favor. De ante mano muchas gracias.

Alfredo on Gracias, funciona de maravilla Como puedo hacer para que solo permita 3 intentos para un mismo tag o tarjeta?

TAGS POST

proyecto arduino proyectos demotracion leantec

Como controlar 2 motores de C.C. con el L298N


y Arduino
Publicado por Tutoriales 7Comentarios

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 3/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

Como controlar 2 motores de C.C. con el L298N


y Arduino
Para empezar a hacer tus pinitos en la robtica, es imprescindible aprender a controlar motores de corriente continua y
controladores de motores basados en puentes H.
En esta sesin, usaremos el L298N, este driver para motores es uno de los ms populares entre los aficionados a la
electrnica y la robtica.

Material necesario.

-Arduino UNO

-L298N

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 4/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

-Motores de C.C.

-Cables

Algo sobre motores de C.C. (Corriente Continua)


El motor CC. es una mquina encargada de convertir la energa elctrica en energa mecnica.
Estos motores estn formados por dos partes fundamentalmete:

-Estator: Es la parte inmvil del motor y esta compuesto por unos potentes imanes.

-Rotor: Es la parte mvil del motor. Esta parte est compuesta por una serie de bobinas de hilos de cobre enrrolladas en un
ncleo ferreomagntico.

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 5/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

Conozcamos el controlador L298N.


Para entender el funcionamiento del L298N, primero tenemos que conocer el puente H.

El puente H esta 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.

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 6/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

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 electrnicos que hagn la misma funcin, como por ejemplo,
transistores y reles.

El L298N tiene en su interior dos puentes H.

Caractersticas:
Le informamos que este sitio hace uso de cookies, si sigue usted navengando, est aceptando el uso
close
de los mismo.
-Tensin de funcionamiento 6-48V.
-Intensidad por canal 2A.
-Salida de 5V.
-Peso 48g.

DESCARGAR HOJA DE DATOS

Esquema de conexin.
Nota: Si usamos alimentaciones diferentes para el controlador de motores y Arduino, hay que unir Gnd de ambas placas.

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 7/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

Cdigo.
En esta ocasin tenemos dos cdigos, el primero usamos directamente el L298N con las funciones de Arduino, en el segundo
cdigo de ejemplo usamos una librera desarrollada por leantec para facilitar el control de dos motores de cc con este driver.

Cdigo 1 (Sin librera)


#include <LEANTEC_ControlMotor.h>//Incluimos la librera control de motores
// Configuramos los pines que vamos a usar
ControlMotor control(2,3,7,4,5,6);
int MotorDer1=2;//El pin 2 de arduino se conecta con el pin In1 del L298N
int MotorDer2=3;//El pin 3 de arduino se conecta con el pin In2 del L298N
int MotorIzq1=7;//El pin 7 de arduino se conecta con el pin In3 del L298N
int MotorIzq2=4;//El pin 4 de arduino se conecta con el pin In4 del L298N
int PWM_Derecho=5;//El pin 5 de arduino se conecta con el pin EnA del L298N
int PWM_Izquierdo=6;//El pin 6 de arduino se conecta con el pin EnB del L298N

int velocidad=150;//Declaramos una variable para guardar la velocidad

void setup()
{
//Configuramos los pines como salida
pinMode(MotorDer1, OUTPUT);
pinMode(MotorDer2, OUTPUT);
pinMode(MotorIzq1, OUTPUT);
pinMode(MotorIzq2, OUTPUT);
pinMode(PWM_Derecho, OUTPUT);
pinMode(PWM_Izquierdo, OUTPUT);

}
void derecha_antihorario_izquierda_horario(){
/*En esta fucin la rueda derecha girar en sentido antihorario y la
izquierda en sentido horario.
En este caso, si las ruedas estuvieran en el chasis de un robot, el
robot retrocederia.*/
digitalWrite(MotorDer1,HIGH);

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 8/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino
digitalWrite(MotorDer2,LOW);
digitalWrite(MotorIzq1,HIGH);
digitalWrite(MotorIzq2,LOW);
analogWrite(PWM_Derecho,200);//Velocidad motor derecho 200
analogWrite(PWM_Izquierdo,200);//Velocidad motor izquierdo 200

}
void derecha_horario_izquierda_antihorario(){
/*En esta fucin la rueda derecha girar en sentido horario y la
izquierda en sentido antihorario.
En este caso, si las ruedas estuvieran en el chasis de un robot, el
robot avanzara.*/
digitalWrite(MotorDer1,LOW);
digitalWrite(MotorDer2,HIGH);
digitalWrite(MotorIzq1,LOW);
digitalWrite(MotorIzq2,HIGH);
analogWrite(PWM_Derecho,200);//Velocidad motor derecho 200
analogWrite(PWM_Izquierdo,200);//Velocidad motor izquierdo 200

}
void giro_horario(){
/*En esta fucin ambas ruedas girarn en sentido horario.
En este caso, si las ruedas estuvieran en el chasis de un robot, el
robot giraria a la derecha.*/
digitalWrite(MotorDer1,HIGH);
digitalWrite(MotorDer2,LOW);
digitalWrite(MotorIzq1,LOW);
digitalWrite(MotorIzq2,HIGH);
analogWrite(PWM_Derecho,200);//Velocidad motor derecho 200
analogWrite(PWM_Izquierdo,200);//Velocidad motor izquierdo 200

}
void giro_antihorario(){
/*En esta fucin ambas ruedas girarn en sentido antihorario.
En este caso, si las ruedas estuvieran en el chasis de un robot, el
robot giraria a la izquierda.*/
digitalWrite(MotorDer1,LOW);
digitalWrite(MotorDer2,HIGH);
digitalWrite(MotorIzq1,HIGH);
digitalWrite(MotorIzq2,LOW);
analogWrite(PWM_Derecho,200);//Velocidad motor derecho 200
analogWrite(PWM_Izquierdo,200);//Velocidad motor izquierdo 200

}
void parar(){
/*Funcin para que las ruedas paren*/
digitalWrite(MotorDer1,LOW);
digitalWrite(MotorDer2,LOW);
digitalWrite(MotorIzq1,LOW);
digitalWrite(MotorIzq2,LOW);
analogWrite(PWM_Derecho,200);//Velocidad motor derecho 200
analogWrite(PWM_Izquierdo,200);//Velocidad motor izquierdo 200

}
void loop()
{
giro_horario();//Llamamos a la funcin giro_horario
delay(3000);//Durante 3 segundos ejecutamos esa funcin
giro_antihorario();//Llamamos a la funcin giro_antihorario
delay(3000);//Durante 3 segundos ejecutamos esa funcin
derecha_horario_izquierda_antihorario();//Llamamos a la funcin derecha_horario_izquierda_antihorario
delay(3000);//Durante 3 segundos ejecutamos esa funcin
derecha_antihorario_izquierda_horario();//Llamamos a la funcin derecha_antihorario_izquierda_horario
delay(3000);//Durante 3 segundos ejecutamos esa funcin
parar();//Llamamos a la funcin parar

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 9/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino
delay(3000);//Durante 3 segundos ejecutamos esa funcin
}

Cdigo 2 (Con librera)


Librera control de motores.

DESCARGAR LIBRERA

Esta librera se configura en con una sola linea de cdigo.

#include <LEANTEC_ControlMotor.h>//Incluimos la librera control de motores


// Configuramos los pines que vamos a usar
ControlMotor control(2,3,7,4,5,6); // MotorDer1,MotorDer2,MotorIzq1,MotorIzq2,PWM_Derecho,PWM_Izquierdo
control.Motor(200,100);

Y el control de motores se hace con la siguiente linea de cdigo,donde el primer nmero que est en el parentesis es la
velocidad con la que se mueven los motores y el siguiente nmero nos indica el giro que hacen y la direccon.

/*Si los motores estuvieran en el chasis de un robot,


este hara un giro del 100% a la derecha a una velociad de 200.*/
control.Motor(200,100);
/*Si los motores estuvieran en el chasis de un robot,
este hara un giro del 100% a la izquierda a una velociad de 200.*/
control.Motor(200,-100);
/*Si los motores estuvieran en el chasis de un robot,
este hara un giro del 70% a la derecha a una velociad de 200.*/
control.Motor(200,70);
/*Si los motores estuvieran en el chasis de un robot,
este avanzara recto una velociad de 180.*/
control.Motor(180,1);

Cdigo 2 para cargar en Arduino.

#include <LEANTEC_ControlMotor.h>//Incluimos la librera control de motores


// Configuramos los pines que vamos a usar
ControlMotor control(2,3,7,4,5,6); // MotorDer1,MotorDer2,MotorIzq1,MotorIzq2,PWM_Derecho,PWM_Izquierdo
int velocidad=150;//Declaramos una variable para guardar la velocidad. 150 es la velocidad en la que empeza
r.

void setup()
{ //En esta ocasin no necesitamos configurar pines ya que la librera lo hace.
}

void loop()
{//Un motor gira en sentido horario y el otro antihorario
//Si estuviern montados en un robot el robot avanzaria.
while(velocidad<254){
velocidad++;
control.Motor(velocidad,1);
delay (200);}
//Un motor gira en sentido horario y el otro antihorario
//Si estuviern montados en un robot el robot retrocedera.
control.Motor(-180,1);
delay(3000);
//Los dos motores giran en sentido horario.
//Si estuvieran montados en un robot este giraria a la derecha.
control.Motor(200,100);
delay(3000);
//Los dos motores giran en sentido antihorario.
//Si estuvieran montados en un robot este giraria a la derecha.
control.Motor(200,-100);

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 10/11
12/10/2017 Como controlar 2 motores de C.C. con el L298N y Arduino

delay(3000);
//Los motores se paran.
control.Motor(0,1);
delay(3000);

velocidad=150;//Reseteamos la velocidad
}

Vdeo de ejemplo con los motores funcionando.


Control de motores de corriente corriente continua con el L298N

Etiquetas: tutorial arduino motores motor control l298n robot robotica

Me gusta 5 Twittear Compartir 4

ENTRADAS RELACIONADAS:

Concurso para Black Friday 2016 #BlackFridayLeantec nov 16, 2016

Descuento para Profesores ago 23, 2016

Tutorial: Montaje del chasis Laserbot may 10, 2016

Tutorial Arduino: Modulo GPS GPS6MV2 abr 25, 2016

Tutorial Arduino: Contador con barrera laser abr 18, 2016

7Comentarios

Sebastien
feb 22, 2016

http://www.leantec.es/blog/33_Como-controlar-2-motores-de-C-C--con-el-L298N.html 11/11

También podría gustarte