Está en la página 1de 4

#include <LEANTEC_ControlMotor.

h>//Incluimos la librería 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 fución 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);
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 fución 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 avanzaría.*/
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 fución ambas ruedas girarán 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 fución ambas ruedas girarán 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(){
/*Función 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 función giro_horario
delay(3000);//Durante 3 segundos ejecutamos esa función
giro_antihorario();//Llamamos a la función giro_antihorario
delay(3000);//Durante 3 segundos ejecutamos esa función
derecha_horario_izquierda_antihorario();//Llamamos a la función
derecha_horario_izquierda_antihorario
delay(3000);//Durante 3 segundos ejecutamos esa función
derecha_antihorario_izquierda_horario();//Llamamos a la función
derecha_antihorario_izquierda_horario
delay(3000);//Durante 3 segundos ejecutamos esa función
parar();//Llamamos a la función parar
delay(3000);//Durante 3 segundos ejecutamos esa función
}

Código 2 (Con librería)

Librería control de motores.

DESCARGAR LIBRERÍA

Esta librería se configura en con una sola linea de código.


#include <LEANTEC_ControlMotor.h>//Incluimos la librería 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 código,donde el primer número
que está en el parentesis es la velocidad con la que se mueven los motores y el siguiente
número nos indica el giro que hacen y la direccíon.
/*Si los motores estuvieran en el chasis de un robot,
este haría 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 haría 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 haría 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 avanzaría recto una velociad de 180.*/
control.Motor(180,1);

Código 2 para cargar en Arduino.


#include <LEANTEC_ControlMotor.h>//Incluimos la librería 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 empezará.

void setup()
{ //En esta ocasión no necesitamos configurar pines ya que la librería
lo hace.
}

void loop()
{//Un motor gira en sentido horario y el otro antihorario
//Si estuvierán 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 estuvierán montados en un robot el robot retrocedería.
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);
delay(3000);
//Los motores se paran.
control.Motor(0,1);
delay(3000);

velocidad=150;//Reseteamos la velocidad
}

También podría gustarte